<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html><head>
<title>Static Call Graph - [.\obj\bk3435_ble_app.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\obj\bk3435_ble_app.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Fri Sep 11 20:28:17 2020
<BR><P>
<H3>Maximum Stack Usage =       1264 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
sys_Reset &rArr; rw_main &rArr; rw_app_enter &rArr; tuya_ble_main_tasks_exec &rArr; tuya_sched_execute &rArr; tuya_ble_event_process &rArr; tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
<P>
<H3>
Functions with no stack information
</H3><UL>
 <LI><a href="#[6a]">sys_Reset</a>
 <LI><a href="#[1]">Undefined</a>
 <LI><a href="#[2]">SoftwareInterrupt</a>
 <LI><a href="#[3]">PrefetchAbort</a>
 <LI><a href="#[4]">DataAbort</a>
 <LI><a href="#[6]">IRQ_Handler</a>
 <LI><a href="#[5]">sys_reserved</a>
 <LI><a href="#[7]">FIQ_Handler</a>
</UL>
</UL>
<P>
<H3>
Mutually Recursive functions
</H3> <LI><a href="#[c1]">elog_output</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c1]">elog_output</a><BR>
 <LI><a href="#[1b1]">elog_strcpy</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c1]">elog_output</a><BR>
 <LI><a href="#[1b7]">get_fmt_enabled</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[c1]">elog_output</a><BR>
 <LI><a href="#[77]">rw_pn9_enter</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[77]">rw_pn9_enter</a><BR>
 <LI><a href="#[12e]">sf_nv_write</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[12e]">sf_nv_write</a><BR>
</UL>
<P>
<H3>
Function Pointers
</H3><UL>
 <LI><a href="#[4]">DataAbort</a> from boot_vectors.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[7]">FIQ_Handler</a> from boot_vectors.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[6]">IRQ_Handler</a> from boot_vectors.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[3]">PrefetchAbort</a> from boot_vectors.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[2f]">Read_Uart_Buf</a> from uart.o(i.Read_Uart_Buf) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[2]">SoftwareInterrupt</a> from boot_vectors.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[1]">Undefined</a> from boot_vectors.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[8]">_snputc</a> from printfa.o(i._snputc) referenced from printfa.o(i.__0snprintf)
 <LI><a href="#[8]">_snputc</a> from printfa.o(i._snputc) referenced from printfa.o(i.__0vsnprintf)
 <LI><a href="#[9]">_sputc</a> from printfa.o(i._sputc) referenced from printfa.o(i.__0sprintf)
 <LI><a href="#[9]">_sputc</a> from printfa.o(i._sputc) referenced from printfa.o(i.__0vsprintf)
 <LI><a href="#[16]">app_active_report_outtime_cb</a> from lock_timer.o(i.app_active_report_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[a]">app_common_evt_process</a> from app_common.o(i.app_common_evt_process) referenced from app_common.o(i.app_common_evt_send)
 <LI><a href="#[b]">app_common_tuya_ble_sdk_callback</a> from app_common.o(i.app_common_tuya_ble_sdk_callback) referenced from app_common.o(i.app_common_init)
 <LI><a href="#[43]">app_fff0_add_fff0s</a> from app_fff0.o(i.app_fff0_add_fff0s) referenced from app.o(.constdata)
 <LI><a href="#[44]">app_fff0_msg_dflt_handler</a> from app_fff0.o(i.app_fff0_msg_dflt_handler) referenced from app_fff0.o(.constdata)
 <LI><a href="#[14]">app_test_outtime_cb</a> from lock_timer.o(i.app_test_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[15]">app_test_reset_outtime_cb</a> from lock_timer.o(i.app_test_reset_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[48]">appm_msg_handler</a> from app_task.o(i.appm_msg_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[2d]">assert_err</a> from arch_main.o(i.assert_err) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[2e]">assert_param</a> from arch_main.o(i.assert_param) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[c]">bk_rtc_handler</a> from bk_timer.o(i.bk_rtc_handler) referenced from bk_timer.o(i.bk_local_timer_start)
 <LI><a href="#[55]">bk_timer0_handler</a> from app_task.o(i.bk_timer0_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[5f]">bk_timer10_handler</a> from app_task.o(i.bk_timer10_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[60]">bk_timer11_handler</a> from app_task.o(i.bk_timer11_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[61]">bk_timer12_handler</a> from app_task.o(i.bk_timer12_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[62]">bk_timer13_handler</a> from app_task.o(i.bk_timer13_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[63]">bk_timer14_handler</a> from app_task.o(i.bk_timer14_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[64]">bk_timer15_handler</a> from app_task.o(i.bk_timer15_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[65]">bk_timer16_handler</a> from app_task.o(i.bk_timer16_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[66]">bk_timer17_handler</a> from app_task.o(i.bk_timer17_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[67]">bk_timer18_handler</a> from app_task.o(i.bk_timer18_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[68]">bk_timer19_handler</a> from app_task.o(i.bk_timer19_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[56]">bk_timer1_handler</a> from app_task.o(i.bk_timer1_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[57]">bk_timer2_handler</a> from app_task.o(i.bk_timer2_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[58]">bk_timer3_handler</a> from app_task.o(i.bk_timer3_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[59]">bk_timer4_handler</a> from app_task.o(i.bk_timer4_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[5a]">bk_timer5_handler</a> from app_task.o(i.bk_timer5_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[5b]">bk_timer6_handler</a> from app_task.o(i.bk_timer6_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[5c]">bk_timer7_handler</a> from app_task.o(i.bk_timer7_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[5d]">bk_timer8_handler</a> from app_task.o(i.bk_timer8_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[5e]">bk_timer9_handler</a> from app_task.o(i.bk_timer9_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[11]">bonding_conn_outtime_cb</a> from lock_timer.o(i.bonding_conn_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[13]">conn_monitor_outtime_cb</a> from lock_timer.o(i.conn_monitor_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[f]">conn_param_update_outtime_cb</a> from lock_timer.o(i.conn_param_update_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[10]">delay_report_outtime_cb</a> from lock_timer.o(i.delay_report_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[3d]">fff0s_cleanup</a> from fff0s.o(i.fff0s_cleanup) referenced from fff0s.o(.constdata)
 <LI><a href="#[3c]">fff0s_create</a> from fff0s.o(i.fff0s_create) referenced from fff0s.o(.constdata)
 <LI><a href="#[3b]">fff0s_destroy</a> from fff0s.o(i.fff0s_destroy) referenced from fff0s.o(.constdata)
 <LI><a href="#[45]">fff0s_fff1_level_ntf_cfg_ind_handler</a> from app_fff0.o(i.fff0s_fff1_level_ntf_cfg_ind_handler) referenced from app_fff0.o(.constdata)
 <LI><a href="#[3e]">fff0s_fff1_level_upd_req_handler</a> from fff0s_task.o(i.fff0s_fff1_level_upd_req_handler) referenced from fff0s_task.o(.constdata)
 <LI><a href="#[3a]">fff0s_init</a> from fff0s.o(i.fff0s_init) referenced from fff0s.o(.constdata)
 <LI><a href="#[46]">fff1_level_upd_handler</a> from app_fff0.o(i.fff1_level_upd_handler) referenced from app_fff0.o(.constdata)
 <LI><a href="#[47]">fff2_writer_req_handler</a> from app_fff0.o(i.fff2_writer_req_handler) referenced from app_fff0.o(.constdata)
 <LI><a href="#[35]">flash_erase</a> from flash.o(i.flash_erase) referenced from arch_main.o(i.rw_main)
 <LI><a href="#[33]">flash_read</a> from flash.o(i.flash_read) referenced from arch_main.o(i.rw_main)
 <LI><a href="#[34]">flash_write</a> from flash.o(i.flash_write) referenced from arch_main.o(i.rw_main)
 <LI><a href="#[4e]">gapc_cmp_evt_handler</a> from app_task.o(i.gapc_cmp_evt_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[4d]">gapc_connection_req_ind_handler</a> from app_task.o(i.gapc_connection_req_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[4f]">gapc_disconnect_ind_handler</a> from app_task.o(i.gapc_disconnect_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[4b]">gapc_get_dev_info_req_ind_handler</a> from app_task.o(i.gapc_get_dev_info_req_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[51]">gapc_le_pkt_size_ind_handler</a> from app_task.o(i.gapc_le_pkt_size_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[54]">gapc_param_update_req_ind_handler</a> from app_task.o(i.gapc_param_update_req_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[52]">gapc_param_updated_ind_handler</a> from app_task.o(i.gapc_param_updated_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[4c]">gapc_set_dev_info_req_ind_handler</a> from app_task.o(i.gapc_set_dev_info_req_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[4a]">gapm_cmp_evt_handler</a> from app_task.o(i.gapm_cmp_evt_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[49]">gapm_device_ready_ind_handler</a> from app_task.o(i.gapm_device_ready_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[50]">gapm_profile_added_ind_handler</a> from app_task.o(i.gapm_profile_added_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[3f]">gattc_att_info_req_ind_handler</a> from fff0s_task.o(i.gattc_att_info_req_ind_handler) referenced from fff0s_task.o(.constdata)
 <LI><a href="#[42]">gattc_cmp_evt_handler</a> from fff0s_task.o(i.gattc_cmp_evt_handler) referenced from fff0s_task.o(.constdata)
 <LI><a href="#[53]">gattc_mtu_changed_ind_handler</a> from app_task.o(i.gattc_mtu_changed_ind_handler) referenced from app_task.o(.constdata)
 <LI><a href="#[41]">gattc_read_req_ind_handler</a> from fff0s_task.o(i.gattc_read_req_ind_handler) referenced from fff0s_task.o(.constdata)
 <LI><a href="#[40]">gattc_write_req_ind_handler</a> from fff0s_task.o(i.gattc_write_req_ind_handler) referenced from fff0s_task.o(.constdata)
 <LI><a href="#[69]">memset</a> from memseta.o(.text) referenced from platform_util.o(.data)
 <LI><a href="#[2c]">platform_reset</a> from arch_main.o(i.platform_reset) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[24]">prf_add_profile</a> from prf.o(i.prf_add_profile) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[23]">prf_cleanup</a> from prf.o(i.prf_cleanup) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[22]">prf_create</a> from prf.o(i.prf_create) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[1f]">prf_get_id_from_task</a> from prf.o(i.prf_get_id_from_task) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[20]">prf_get_task_from_id</a> from prf.o(i.prf_get_task_from_id) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[21]">prf_init</a> from prf.o(i.prf_init) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[17]">reset_with_disconn2_outtime_cb</a> from lock_timer.o(i.reset_with_disconn2_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[12]">reset_with_disconn_outtime_cb</a> from lock_timer.o(i.reset_with_disconn_outtime_cb) referenced from lock_timer.o(i.lock_timer_creat)
 <LI><a href="#[1d]">rf_force_agc_enable</a> from rf_xvr.o(i.rf_force_agc_enable) referenced from rf_xvr.o(i.rf_init)
 <LI><a href="#[1c]">rf_reset</a> from rf_xvr.o(i.rf_reset) referenced from rf_xvr.o(i.rf_init)
 <LI><a href="#[18]">rf_rpl_reg_rd</a> from rf_xvr.o(i.rf_rpl_reg_rd) referenced from rf_xvr.o(i.rf_init)
 <LI><a href="#[19]">rf_rpl_reg_wr</a> from rf_xvr.o(i.rf_rpl_reg_wr) referenced from rf_xvr.o(i.rf_init)
 <LI><a href="#[1e]">rf_rssi_convert</a> from rf_xvr.o(i.rf_rssi_convert) referenced from rf_xvr.o(i.rf_init)
 <LI><a href="#[1b]">rf_sleep</a> from rf_xvr.o(i.rf_sleep) referenced from rf_xvr.o(i.rf_init)
 <LI><a href="#[1a]">rf_txpwr_dbm_get</a> from rf_xvr.o(i.rf_txpwr_dbm_get) referenced from rf_xvr.o(i.rf_init)
 <LI><a href="#[25]">rwble_hl_reset</a> from rwble_hl.o(i.rwble_hl_reset) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[28]">rwip_prevent_sleep_clear</a> from rwip.o(i.rwip_prevent_sleep_clear) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[27]">rwip_prevent_sleep_set</a> from rwip.o(i.rwip_prevent_sleep_set) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[26]">rwip_reset</a> from rwip.o(i.rwip_reset) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[29]">rwip_sleep_lpcycles_2_us</a> from rwip.o(i.rwip_sleep_lpcycles_2_us) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[2a]">rwip_us_2_lpcycles</a> from rwip.o(i.rwip_us_2_lpcycles) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[2b]">rwip_wakeup_delay_set</a> from rwip.o(i.rwip_wakeup_delay_set) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[6a]">sys_Reset</a> from boot_handlers.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[5]">sys_reserved</a> from boot_vectors.o(SYS_BOOT) referenced from boot_vectors.o(SYS_BOOT)
 <LI><a href="#[d]">uart1_rx_handler</a> from bk_uart.o(i.uart1_rx_handler) referenced from bk_uart.o(i.bk_uart1_init)
 <LI><a href="#[32]">uart2_printf</a> from uart.o(i.uart2_printf) referenced from arch_main.o(i.rw_main)
 <LI><a href="#[e]">uart2_rx_handler</a> from bk_uart.o(i.uart2_rx_handler) referenced from bk_uart.o(i.bk_uart2_init)
 <LI><a href="#[30]">uart_clear_rxfifo</a> from uart.o(i.uart_clear_rxfifo) referenced from arch_main.o(i.rom_env_init)
 <LI><a href="#[39]">uart_flow_off</a> from uart.o(i.uart_flow_off) referenced from arch_main.o(i.rwip_eif_api_init)
 <LI><a href="#[38]">uart_flow_on</a> from uart.o(i.uart_flow_on) referenced from arch_main.o(i.rwip_eif_api_init)
 <LI><a href="#[31]">uart_printf</a> from uart.o(i.uart_printf) referenced from arch_main.o(i.rw_main)
 <LI><a href="#[36]">uart_read</a> from uart.o(i.uart_read) referenced from arch_main.o(i.rwip_eif_api_init)
 <LI><a href="#[37]">uart_write</a> from uart.o(i.uart_write) referenced from arch_main.o(i.rwip_eif_api_init)
</UL>
<P>
<H3>
Global Symbols
</H3>
<P><STRONG><a name="[259]"></a>uart_stack_register</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[2d6]"></a>Undefined_Exception</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Undefined (via Veneer)
</UL>

<P><STRONG><a name="[2d7]"></a>SoftwareInterrupt_Exception</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SoftwareInterrupt (via Veneer)
</UL>

<P><STRONG><a name="[2d8]"></a>PrefetchAbort_Exception</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PrefetchAbort (via Veneer)
</UL>

<P><STRONG><a name="[2d9]"></a>DataAbort_Exception</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DataAbort (via Veneer)
</UL>

<P><STRONG><a name="[2da]"></a>Reserved_Exception</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_reserved (via Veneer)
</UL>

<P><STRONG><a name="[25a]"></a>nvds_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[15b]"></a>nvds_get</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_init
</UL>

<P><STRONG><a name="[15d]"></a>nvds_put</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_init
</UL>

<P><STRONG><a name="[272]"></a>ke_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[279]"></a>ke_flush</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset
</UL>

<P><STRONG><a name="[27c]"></a>ke_sleep_check</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[287]"></a>ke_event_set</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[268]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup_end
</UL>

<P><STRONG><a name="[27b]"></a>ke_event_schedule</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[24b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_schedule
</UL>

<P><STRONG><a name="[273]"></a>ke_mem_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[1c5]"></a>ke_malloc</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_init
</UL>

<P><STRONG><a name="[1c0]"></a>ke_free</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_init
<LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_destroy
</UL>

<P><STRONG><a name="[e9]"></a>ke_msg_alloc</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff1_send_lvl
<LI><a href="#[161]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_param
<LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_disconnect
<LI><a href="#[160]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_adv_data
<LI><a href="#[15f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_stop_advertising
<LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_write_req_ind_handler
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_read_req_ind_handler
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_att_info_req_ind_handler
<LI><a href="#[1c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_notify_fff1_lvl
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_device_ready_ind_handler
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_set_dev_info_req_ind_handler
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_param_update_req_ind_handler
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_get_dev_info_req_ind_handler
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_connection_req_ind_handler
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff0_add_fff0s
</UL>

<P><STRONG><a name="[ea]"></a>ke_msg_send</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff1_send_lvl
<LI><a href="#[161]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_param
<LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_disconnect
<LI><a href="#[160]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_adv_data
<LI><a href="#[15f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_stop_advertising
<LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_write_req_ind_handler
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_read_req_ind_handler
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_att_info_req_ind_handler
<LI><a href="#[1c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_notify_fff1_lvl
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_device_ready_ind_handler
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_set_dev_info_req_ind_handler
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_param_update_req_ind_handler
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_get_dev_info_req_ind_handler
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_connection_req_ind_handler
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff0_add_fff0s
</UL>

<P><STRONG><a name="[159]"></a>ke_task_create</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_init
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_init
</UL>

<P><STRONG><a name="[15a]"></a>ke_state_set</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[15f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_stop_advertising
<LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_init
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_cmp_evt_handler
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_fff1_level_upd_req_handler
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_init
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_disconnect_ind_handler
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_connection_req_ind_handler
</UL>

<P><STRONG><a name="[c6]"></a>ke_state_get</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_stop
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_start
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_param_set
<LI><a href="#[160]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_adv_data
<LI><a href="#[15f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_stop_advertising
<LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_cmp_evt_handler
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_fff1_level_upd_req_handler
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_profile_added_ind_handler
</UL>

<P><STRONG><a name="[244]"></a>ke_task_msg_flush</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_init
</UL>

<P><STRONG><a name="[180]"></a>ke_timer_set</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[182]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_start_0
<LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>

<P><STRONG><a name="[185]"></a>ke_timer_clear</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[184]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_stop_0
</UL>

<P><STRONG><a name="[27e]"></a>ke_timer_sleep_check</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[262]"></a>em_buf_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset
<LI><a href="#[261]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_init
</UL>

<P><STRONG><a name="[264]"></a>llc_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[261]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_init
</UL>

<P><STRONG><a name="[271]"></a>llc_reset</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset
</UL>

<P><STRONG><a name="[263]"></a>lld_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset
<LI><a href="#[261]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_init
</UL>

<P><STRONG><a name="[270]"></a>lld_core_reset</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset
</UL>

<P><STRONG><a name="[26e]"></a>lld_crypt_isr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[26d]"></a>lld_evt_timer_isr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[26a]"></a>lld_evt_end_isr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[26b]"></a>lld_evt_rx_isr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[283]"></a>lld_sleep_enter</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[284]"></a>lld_sleep_wakeup</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[267]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup
</UL>

<P><STRONG><a name="[286]"></a>lld_sleep_wakeup_end</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[268]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup_end
</UL>

<P><STRONG><a name="[265]"></a>llm_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset
<LI><a href="#[261]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_init
</UL>

<P><STRONG><a name="[266]"></a>llm_ble_ready</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[261]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_init
</UL>

<P><STRONG><a name="[278]"></a>ea_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset
<LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[269]"></a>ea_finetimer_isr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[26c]"></a>ea_sw_isr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[280]"></a>ea_sleep_check</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[25e]"></a>gapm_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_reset
<LI><a href="#[25c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_init
</UL>

<P><STRONG><a name="[1c6]"></a>attm_svc_create_db</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_init
</UL>

<P><STRONG><a name="[25d]"></a>attm_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_reset
<LI><a href="#[25c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_init
</UL>

<P><STRONG><a name="[25f]"></a>gattm_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_reset
<LI><a href="#[25c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_init
</UL>

<P><STRONG><a name="[260]"></a>l2cm_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_reset
<LI><a href="#[25c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_init
</UL>

<P><STRONG><a name="[276]"></a>hci_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[27a]"></a>hci_reset</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset
</UL>

<P><STRONG><a name="[275]"></a>h4tl_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[285]"></a>h4tl_start</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[267]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup
</UL>

<P><STRONG><a name="[281]"></a>h4tl_stop</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[277]"></a>ahi_init</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[76]"></a>__aeabi_uidivmod</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_meth_sync_new_report
<LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_get_crc32_in_flash
<LI><a href="#[21a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_utc_sec_2_mytime
<LI><a href="#[21e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_storage_calculate_T2_T3
<LI><a href="#[219]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_calculate_T2_T3
<LI><a href="#[1fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;verify_dynamic_pwd_token
<LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TOTP
<LI><a href="#[10f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_conn_param_update
<LI><a href="#[1d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod_pow
<LI><a href="#[1a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_to_num_str
<LI><a href="#[19a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod_pow_radix
<LI><a href="#[1a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod
<LI><a href="#[197]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ceil2
<LI><a href="#[198]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcc
<LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_us_2_lpcycles
<LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
<LI><a href="#[182]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_start_0
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
<LI><a href="#[1e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kmod_calibration
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
<LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_is_leap_year
<LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_dayindex
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[153]"></a>__aeabi_idivmod</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[21a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_utc_sec_2_mytime
<LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_dayindex
</UL>

<P><STRONG><a name="[15c]"></a>rand</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[2c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_rand_generator
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_init
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>

<P><STRONG><a name="[252]"></a>srand</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
<LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset
</UL>

<P><STRONG><a name="[9e]"></a>__aeabi_memcpy</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
<LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_meth_sync_new_report
<LI><a href="#[211]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_in_local_flash
<LI><a href="#[210]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_all_by_memberid
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_with_data
<LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
<LI><a href="#[1f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_sync_handler
<LI><a href="#[217]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_offline_pwd
<LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
<LI><a href="#[212]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save_in_local_flash
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_init
<LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_rsp
<LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_query_info_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[222]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_rsp
<LI><a href="#[1d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_decrypt
<LI><a href="#[1e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;is_offline_pwd_exist
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HMAC_SHA1
<LI><a href="#[235]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_update_ret
<LI><a href="#[224]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_cbc
<LI><a href="#[165]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_ble_notify
<LI><a href="#[2c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_rand_generator
<LI><a href="#[296]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_advertising_scan_rsp_data_update
<LI><a href="#[295]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_advertising_adv_data_update
<LI><a href="#[2ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_load_settings
<LI><a href="#[2ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_init
<LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
<LI><a href="#[132]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_ota_response
<LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
<LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_read
<LI><a href="#[135]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_set_bt_mac_addr
<LI><a href="#[11d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_get_bt_mac_addr
<LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
<LI><a href="#[17d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gatt_receive_data
<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff1_send_lvl
<LI><a href="#[175]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_init_bt_mac_addr
<LI><a href="#[160]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_adv_data
<LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
<LI><a href="#[1a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str_with_bignum
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
<LI><a href="#[1a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_copy_of_range
<LI><a href="#[1a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_concatenate
<LI><a href="#[19d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;create_byte_str
<LI><a href="#[195]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_copy_of_range
<LI><a href="#[192]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_concatenate
<LI><a href="#[1d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_data
<LI><a href="#[1d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read_data
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_write_req_ind_handler
<LI><a href="#[1c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_notify_fff1_lvl
<LI><a href="#[2a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encryption
<LI><a href="#[2a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_decryption
<LI><a href="#[291]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;trsmitr_send_pkg_encode
<LI><a href="#[18f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;trsmitr_recv_pkg_decode
<LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_unix_time_char_ms_resp
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_req
<LI><a href="#[2b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_net_config_info_req
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[2ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_query_req
<LI><a href="#[2bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dev_infor_req
<LI><a href="#[18e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ble_data_unpack
<LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
<LI><a href="#[19e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;data_2_klvlist
<LI><a href="#[2d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_data_unpack
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
<LI><a href="#[157]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_get_dev_name
<LI><a href="#[2c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sched_event_put
<LI><a href="#[2a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_key_generate
<LI><a href="#[292]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_Add_Pkcs
<LI><a href="#[2c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_sched_execute
<LI><a href="#[294]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_id_encrypt
<LI><a href="#[2b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_data_with_time_reported_evt
<LI><a href="#[2af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_info_update_evt
</UL>

<P><STRONG><a name="[14a]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_auth_settings
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
<LI><a href="#[2ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_load_settings
<LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
<LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
</UL>

<P><STRONG><a name="[fd]"></a>memcmp</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
<LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_query_info_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[175]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_init_bt_mac_addr
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_key_generate
</UL>

<P><STRONG><a name="[93]"></a>__ARM_clz</STRONG> (ARM, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue (via BLX)
</UL>

<P><STRONG><a name="[16c]"></a>__ARM_common_disable_fiq</STRONG> (ARM, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[16b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_enter_critical (via BLX)
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;platform_reset (via BLX)
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset (via BLX)
<LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_set (via BLX)
<LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_clear (via BLX)
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter (via BLX)
<LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset (via BLX)
</UL>

<P><STRONG><a name="[16d]"></a>__ARM_common_disable_irq</STRONG> (ARM, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[16b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_enter_critical (via BLX)
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;platform_reset (via BLX)
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset (via BLX)
<LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_set (via BLX)
<LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_clear (via BLX)
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter (via BLX)
<LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset (via BLX)
</UL>

<P><STRONG><a name="[16f]"></a>__ARM_common_enable_fiq</STRONG> (ARM, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[16e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_exit_critical (via BLX)
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset (via BLX)
<LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_set (via BLX)
<LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_clear (via BLX)
<LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main (via BLX)
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter (via BLX)
<LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset (via BLX)
</UL>

<P><STRONG><a name="[170]"></a>__ARM_common_enable_irq</STRONG> (ARM, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[16e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_exit_critical (via BLX)
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset (via BLX)
<LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_set (via BLX)
<LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_clear (via BLX)
<LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main (via BLX)
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter (via BLX)
<LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset (via BLX)
</UL>

<P><STRONG><a name="[c9]"></a>__ARM_common_switch8</STRONG> (ARM, 0 bytes, Stack size 0 bytes, peripheral_stack_symbol.txt(ABSOLUTE))
<BR><BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler (via BLX)
<LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler (via BLX)
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process (via BLX)
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler (via BLX)
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback (via BLX)
<LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process (via BLX)
<LI><a href="#[2d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_int2hex (via BLX)
<LI><a href="#[2d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_hex2int (via BLX)
<LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process (via BLX)
<LI><a href="#[2bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_req (via BLX)
<LI><a href="#[2d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_data_unpack (via BLX)
<LI><a href="#[29c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_inter_event_response (via BLX)
<LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process (via BLX)
<LI><a href="#[2b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_response_evt (via BLX)
</UL>

<P><STRONG><a name="[6a]"></a>sys_Reset</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_handlers.o(SYS_BOOT))
<BR><BR>[Stack]<UL><LI>Max Depth = 1264 + Unknown Stack Size
<LI>Call Chain = sys_Reset &rArr; rw_main &rArr; rw_app_enter &rArr; tuya_ble_main_tasks_exec &rArr; tuya_sched_execute &rArr; tuya_ble_event_process &rArr; tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main (via Veneer)
</UL>

<P><STRONG><a name="[6b]"></a>SYSirq_FIQ_Handler</STRONG> (ARM, 16 bytes, Stack size 24 bytes, intc.o(sys_fiq_entry))
<BR><BR>[Stack]<UL><LI>Max Depth = 192<LI>Call Chain = SYSirq_FIQ_Handler &rArr; FIQ_Exception &rArr; rwble_isr &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FIQ_Exception (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FIQ_Handler
</UL>

<P><STRONG><a name="[6d]"></a>SYSirq_IRQ_Handler</STRONG> (ARM, 16 bytes, Stack size 24 bytes, intc.o(sys_irq_entry))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = SYSirq_IRQ_Handler &rArr; IRQ_Exception &rArr; uart_isr &rArr; pn9_test_process &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Exception (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Handler
</UL>

<P><STRONG><a name="[72]"></a>BT_delayUs</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, rf_test.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BT_singleWaveCfg
</UL>

<P><STRONG><a name="[70]"></a>char_to_num</STRONG> (Thumb, 44 bytes, Stack size 0 bytes, rf_test.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fCheckValue
</UL>

<P><STRONG><a name="[6f]"></a>fCheckValue</STRONG> (Thumb, 58 bytes, Stack size 12 bytes, rf_test.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = fCheckValue
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;char_to_num
</UL>
<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
</UL>

<P><STRONG><a name="[71]"></a>BT_singleWaveCfg</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, rf_test.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = BT_singleWaveCfg
</UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BT_delayUs
</UL>
<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
</UL>

<P><STRONG><a name="[73]"></a>rw_fcc_enter</STRONG> (Thumb, 736 bytes, Stack size 0 bytes, rf_test.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = rw_fcc_enter &rArr; uart_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_printf
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strncmp
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BT_singleWaveCfg
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fCheckValue
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BT_delayUs
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[79]"></a>XVR_Initial</STRONG> (Thumb, 304 bytes, Stack size 0 bytes, rf_pn9_test.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
</UL>

<P><STRONG><a name="[7a]"></a>Test_XVR_PN9_Rx_Ena</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, rf_pn9_test.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
</UL>

<P><STRONG><a name="[7b]"></a>Test_XVR_Single_Carrier_Tx_Ena1</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, rf_pn9_test.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
</UL>

<P><STRONG><a name="[7d]"></a>LockPn9Test</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, rf_pn9_test.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
</UL>

<P><STRONG><a name="[7e]"></a>GetBER</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, rf_pn9_test.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
</UL>

<P><STRONG><a name="[77]"></a>rw_pn9_enter</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rf_pn9_test.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_pn9_enter
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_pn9_enter
<LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[78]"></a>pn9_test_process</STRONG> (Thumb, 164 bytes, Stack size 24 bytes, rf_pn9_test.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = pn9_test_process &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_send
<LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GetBER
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LockPn9Test
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Test_XVR_Single_Carrier_Tx_Ena1
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Test_XVR_PN9_Rx_Ena
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;XVR_Initial
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_isr
</UL>

<P><STRONG><a name="[7f]"></a>__aeabi_uldivmod</STRONG> (Thumb, 96 bytes, Stack size 48 bytes, uldiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = __aeabi_uldivmod &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[2b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_unix_time_char_ms_resp
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>

<P><STRONG><a name="[82]"></a>__aeabi_memset</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memset
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>

<P><STRONG><a name="[2db]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

<P><STRONG><a name="[2dc]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

<P><STRONG><a name="[75]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<BR>[Called By]<UL><LI><a href="#[1f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_sync_new_handler
<LI><a href="#[212]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save_in_local_flash
<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[22e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_finish_ret
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
<LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[1a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str_with_bignum
<LI><a href="#[1a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
<LI><a href="#[1a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_to_num_str
<LI><a href="#[1a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_concatenate
<LI><a href="#[192]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_concatenate
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_init
<LI><a href="#[2aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_unbond
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[2b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_net_config_info_req
<LI><a href="#[2d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_data_unpack
<LI><a href="#[2a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_key_generate
<LI><a href="#[294]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_id_encrypt
</UL>

<P><STRONG><a name="[9d]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[205]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_default
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HMAC_SHA1
<LI><a href="#[22e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_finish_ret
<LI><a href="#[231]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_init
<LI><a href="#[22a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_init
<LI><a href="#[2ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_load_settings
<LI><a href="#[288]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sd_malloc
<LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_clear_rxfifo
<LI><a href="#[249]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rom_env_init
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_init
<LI><a href="#[290]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;trsmitr_init
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_reset_req
<LI><a href="#[18e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ble_data_unpack
<LI><a href="#[2b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_data_with_time_reported_evt
</UL>

<P><STRONG><a name="[2dd]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

<P><STRONG><a name="[69]"></a>memset</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = memset
</UL>
<BR>[Calls]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<BR>[Address Reference Count : 1]<UL><LI> platform_util.o(.data)
</UL>
<P><STRONG><a name="[1ad]"></a>strstr</STRONG> (Thumb, 40 bytes, Stack size 12 bytes, strstr.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = strstr
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>

<P><STRONG><a name="[1b0]"></a>strncpy</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, strncpy.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = strncpy
</UL>
<BR>[Called By]<UL><LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>

<P><STRONG><a name="[14d]"></a>strlen</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, strlen.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
<LI><a href="#[1fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;verify_dynamic_pwd_token
<LI><a href="#[1e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_timer_string
</UL>

<P><STRONG><a name="[74]"></a>strncmp</STRONG> (Thumb, 30 bytes, Stack size 12 bytes, strncmp.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = strncmp
</UL>
<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
</UL>

<P><STRONG><a name="[f2]"></a>__aeabi_uread4</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, uread4.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[1f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_setkey_handler
<LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
<LI><a href="#[21e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_storage_calculate_T2_T3
<LI><a href="#[21d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_find
<LI><a href="#[21b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_clear
<LI><a href="#[1e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;is_offline_pwd_exist
</UL>

<P><STRONG><a name="[2de]"></a>__rt_uread4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, uread4.o(.text), UNUSED)

<P><STRONG><a name="[2df]"></a>_uread4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, uread4.o(.text), UNUSED)

<P><STRONG><a name="[fc]"></a>__aeabi_uwrite4</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, uwrite4.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[21d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_find
</UL>

<P><STRONG><a name="[2e0]"></a>__rt_uwrite4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, uwrite4.o(.text), UNUSED)

<P><STRONG><a name="[2e1]"></a>_uwrite4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, uwrite4.o(.text), UNUSED)

<P><STRONG><a name="[83]"></a>atoll</STRONG> (Thumb, 26 bytes, Stack size 16 bytes, atoll.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = atoll &rArr; __strtoll &rArr; _strtoull &rArr; __aeabi_lmul &rArr; __aeabi_llsl
</UL>
<BR>[Calls]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__strtoll
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_errno_addr
</UL>
<BR>[Called By]<UL><LI><a href="#[2b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_unix_time_char_ms_resp
</UL>

<P><STRONG><a name="[86]"></a>__aeabi_dadd</STRONG> (Thumb, 328 bytes, Stack size 48 bytes, dadd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = __aeabi_dadd &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_lasr
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via BLX)
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub
<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__kernel_poly (via BLX)
<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_infnan2 (via Veneer)
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>

<P><STRONG><a name="[8a]"></a>__aeabi_dsub</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, dadd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = __aeabi_dsub &rArr; __aeabi_dadd &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via BLX)
</UL>

<P><STRONG><a name="[8b]"></a>__aeabi_drsub</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, dadd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = __aeabi_drsub &rArr; __aeabi_dadd &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via BLX)
</UL>

<P><STRONG><a name="[8c]"></a>__aeabi_dmul</STRONG> (Thumb, 202 bytes, Stack size 72 bytes, dmul.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = __aeabi_dmul &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_param_updated_ind_handler
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via Veneer)
<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__kernel_poly (via BLX)
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>

<P><STRONG><a name="[8d]"></a>__aeabi_ddiv</STRONG> (Thumb, 234 bytes, Stack size 40 bytes, ddiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = __aeabi_ddiv &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
</UL>
<BR>[Called By]<UL><LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via Veneer)
<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_invalid (via Veneer)
<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_divzero (via Veneer)
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>

<P><STRONG><a name="[b6]"></a>__ARM_scalbn</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, dscalb.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __ARM_scalbn
</UL>
<BR>[Called By]<UL><LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via BLX)
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_underflow (via Veneer)
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_overflow (via Veneer)
</UL>

<P><STRONG><a name="[2e2]"></a>scalbn</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, dscalb.o(.text), UNUSED)

<P><STRONG><a name="[8e]"></a>__aeabi_ui2d</STRONG> (Thumb, 24 bytes, Stack size 16 bytes, dfltui.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = __aeabi_ui2d &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TOTP
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_param_updated_ind_handler
</UL>

<P><STRONG><a name="[8f]"></a>__aeabi_d2iz</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, dfixi.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __aeabi_d2iz &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TOTP
</UL>

<P><STRONG><a name="[90]"></a>__aeabi_d2uiz</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, dfixui.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __aeabi_d2uiz &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_param_updated_ind_handler
</UL>

<P><STRONG><a name="[81]"></a>__aeabi_llsl</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, llshl.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_lmul
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>

<P><STRONG><a name="[2e3]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, llshl.o(.text), UNUSED)

<P><STRONG><a name="[80]"></a>__aeabi_llsr</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, llushr.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_llsr
</UL>
<BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2uiz
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dsqrt
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>

<P><STRONG><a name="[2e4]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, llushr.o(.text), UNUSED)

<P><STRONG><a name="[87]"></a>__aeabi_lasr</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, llsshr.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_lasr
</UL>
<BR>[Called By]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>

<P><STRONG><a name="[2e5]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, llsshr.o(.text), UNUSED)

<P><STRONG><a name="[85]"></a>__strtoll</STRONG> (Thumb, 138 bytes, Stack size 32 bytes, __strtoll.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = __strtoll &rArr; _strtoull &rArr; __aeabi_lmul &rArr; __aeabi_llsl
</UL>
<BR>[Calls]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_strtoull
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_ctype_table
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_errno_addr
</UL>
<BR>[Called By]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;atoll
</UL>

<P><STRONG><a name="[2e6]"></a>__I$use$fp</STRONG> (ARM, 0 bytes, Stack size 8 bytes, iusefp.o(.text), UNUSED)

<P><STRONG><a name="[89]"></a>_double_round</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, depilogue.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = _double_round
</UL>
<BR>[Called By]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dsqrt
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>

<P><STRONG><a name="[88]"></a>_double_epilogue</STRONG> (Thumb, 164 bytes, Stack size 48 bytes, depilogue.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_clz (via BLX)
<LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
</UL>
<BR>[Called By]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2d
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
</UL>

<P><STRONG><a name="[94]"></a>_dsqrt</STRONG> (Thumb, 162 bytes, Stack size 32 bytes, dsqrt.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = _dsqrt &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
</UL>
<BR>[Called By]<UL><LI><a href="#[240]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrt (via BLX)
</UL>

<P><STRONG><a name="[95]"></a>__aeabi_i2d</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = __aeabi_i2d &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via Veneer)
</UL>

<P><STRONG><a name="[96]"></a>__aeabi_d2ulz</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, dfixul.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>

<P><STRONG><a name="[b9]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, cdrcmple.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via BLX)
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>

<P><STRONG><a name="[91]"></a>__rt_ctype_table</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, ctype_o.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__strtoll
</UL>

<P><STRONG><a name="[92]"></a>_strtoull</STRONG> (Thumb, 216 bytes, Stack size 48 bytes, _strtoull.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = _strtoull &rArr; __aeabi_lmul &rArr; __aeabi_llsl
</UL>
<BR>[Calls]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_chval
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_lmul
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_errno_addr
</UL>
<BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__strtoll
</UL>

<P><STRONG><a name="[97]"></a>__aeabi_lmul</STRONG> (Thumb, 126 bytes, Stack size 64 bytes, llmul.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = __aeabi_lmul &rArr; __aeabi_llsl
</UL>
<BR>[Calls]<UL><LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_strtoull
</UL>

<P><STRONG><a name="[2e7]"></a>_ll_mul</STRONG> (Thumb, 0 bytes, Stack size 64 bytes, llmul.o(.text), UNUSED)

<P><STRONG><a name="[98]"></a>_chval</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, _chval.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_strtoull
</UL>

<P><STRONG><a name="[169]"></a>Delay_ms</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, rf_xvr.o(i.Delay_ms))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Delay_ms
</UL>
<BR>[Called By]<UL><LI><a href="#[168]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_delay_ms
<LI><a href="#[1e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kmod_calibration
<LI><a href="#[1e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initial_xver_BK3435V2_openLoop
<LI><a href="#[1e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;init_analog_xvr_reg
</UL>

<P><STRONG><a name="[6c]"></a>FIQ_Exception</STRONG> (Thumb, 22 bytes, Stack size 16 bytes, intc.o(i.FIQ_Exception))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = FIQ_Exception &rArr; rwble_isr &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_wakeup
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SYSirq_FIQ_Handler (via BLX)
</UL>

<P><STRONG><a name="[9b]"></a>HMAC_SHA1</STRONG> (Thumb, 162 bytes, Stack size 272 bytes, hmac-sha1.o(i.HMAC_SHA1))
<BR><BR>[Stack]<UL><LI>Max Depth = 792<LI>Call Chain = HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Result
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Reset
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Input
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TOTP
</UL>

<P><STRONG><a name="[6e]"></a>IRQ_Exception</STRONG> (Thumb, 90 bytes, Stack size 16 bytes, intc.o(i.IRQ_Exception))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = IRQ_Exception &rArr; uart_isr &rArr; pn9_test_process &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gpio_isr
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_wakeup
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_isr
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_isr
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rtc_isr
</UL>
<BR>[Called By]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SYSirq_IRQ_Handler (via BLX)
</UL>

<P><STRONG><a name="[2f]"></a>Read_Uart_Buf</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, uart.o(i.Read_Uart_Buf))
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[9c]"></a>SHA1</STRONG> (Thumb, 46 bytes, Stack size 116 bytes, sha1.o(i.SHA1))
<BR><BR>[Stack]<UL><LI>Max Depth = 520<LI>Call Chain = SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Result
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Reset
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Input
</UL>
<BR>[Called By]<UL><LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HMAC_SHA1
</UL>

<P><STRONG><a name="[a0]"></a>SHA1Input</STRONG> (Thumb, 108 bytes, Stack size 20 bytes, sha1.o(i.SHA1Input))
<BR><BR>[Stack]<UL><LI>Max Depth = 396<LI>Call Chain = SHA1Input &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1ProcessMessageBlock
</UL>
<BR>[Called By]<UL><LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HMAC_SHA1
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1
</UL>

<P><STRONG><a name="[a7]"></a>SHA1PadMessage</STRONG> (Thumb, 128 bytes, Stack size 16 bytes, sha1.o(i.SHA1PadMessage))
<BR><BR>[Stack]<UL><LI>Max Depth = 392<LI>Call Chain = SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1ProcessMessageBlock
</UL>
<BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Result
</UL>

<P><STRONG><a name="[a6]"></a>SHA1ProcessMessageBlock</STRONG> (Thumb, 406 bytes, Stack size 376 bytes, sha1.o(i.SHA1ProcessMessageBlock))
<BR><BR>[Stack]<UL><LI>Max Depth = 376<LI>Call Chain = SHA1ProcessMessageBlock
</UL>
<BR>[Called By]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1PadMessage
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1Input
</UL>

<P><STRONG><a name="[9f]"></a>SHA1Reset</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, sha1.o(i.SHA1Reset))
<BR><BR>[Called By]<UL><LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HMAC_SHA1
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1
</UL>

<P><STRONG><a name="[a1]"></a>SHA1Result</STRONG> (Thumb, 90 bytes, Stack size 12 bytes, sha1.o(i.SHA1Result))
<BR><BR>[Stack]<UL><LI>Max Depth = 404<LI>Call Chain = SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1PadMessage
</UL>
<BR>[Called By]<UL><LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HMAC_SHA1
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SHA1
</UL>

<P><STRONG><a name="[ac]"></a>__0snprintf</STRONG> (Thumb, 46 bytes, Stack size 32 bytes, printfa.o(i.__0snprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[2e8]"></a>__1snprintf</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, printfa.o(i.__0snprintf), UNUSED)

<P><STRONG><a name="[1af]"></a>__2snprintf</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, printfa.o(i.__0snprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __2snprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[1e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_timer_string
<LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>

<P><STRONG><a name="[2e9]"></a>__c89snprintf</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, printfa.o(i.__0snprintf), UNUSED)

<P><STRONG><a name="[2ea]"></a>snprintf</STRONG> (Thumb, 0 bytes, Stack size 32 bytes, printfa.o(i.__0snprintf), UNUSED)

<P><STRONG><a name="[ae]"></a>__0sprintf</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sputc
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[2eb]"></a>__1sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

<P><STRONG><a name="[14e]"></a>__2sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2sprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
</UL>

<P><STRONG><a name="[2ec]"></a>__c89sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

<P><STRONG><a name="[2ed]"></a>sprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0sprintf), UNUSED)

<P><STRONG><a name="[af]"></a>__0vsnprintf</STRONG> (Thumb, 40 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[2ee]"></a>__1vsnprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)

<P><STRONG><a name="[2ef]"></a>__2vsnprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)

<P><STRONG><a name="[2f0]"></a>__c89vsnprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)

<P><STRONG><a name="[1bb]"></a>vsnprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = vsnprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>

<P><STRONG><a name="[b0]"></a>__0vsprintf</STRONG> (Thumb, 30 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sputc
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[2f1]"></a>__1vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

<P><STRONG><a name="[2f2]"></a>__2vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

<P><STRONG><a name="[2f3]"></a>__c89vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)

<P><STRONG><a name="[2d4]"></a>vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = vsprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_printf
<LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_printf
</UL>

<P><STRONG><a name="[241]"></a>__ARM_fpclassify</STRONG> (ARM, 44 bytes, Stack size 0 bytes, fpclassify.o(i.__ARM_fpclassify))
<BR><BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[84]"></a>__aeabi_errno_addr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, errno.o(i.__aeabi_errno_addr))
<BR><BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_strtoull
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__strtoll
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;atoll
</UL>

<P><STRONG><a name="[2f4]"></a>__rt_errno_addr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, errno.o(i.__aeabi_errno_addr), UNUSED)

<P><STRONG><a name="[b1]"></a>__kernel_poly</STRONG> (ARM, 240 bytes, Stack size 24 bytes, poly.o(i.__kernel_poly))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = __kernel_poly &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul (via BLX)
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[b2]"></a>__mathlib_dbl_divzero</STRONG> (ARM, 20 bytes, Stack size 0 bytes, dunder.o(i.__mathlib_dbl_divzero))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = __mathlib_dbl_divzero &rArr; __aeabi_ddiv &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[b3]"></a>__mathlib_dbl_infnan2</STRONG> (ARM, 4 bytes, Stack size 0 bytes, dunder.o(i.__mathlib_dbl_infnan2))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = __mathlib_dbl_infnan2 &rArr; __aeabi_dadd &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[b4]"></a>__mathlib_dbl_invalid</STRONG> (ARM, 20 bytes, Stack size 0 bytes, dunder.o(i.__mathlib_dbl_invalid))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = __mathlib_dbl_invalid &rArr; __aeabi_ddiv &rArr; _double_round
</UL>
<BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[b5]"></a>__mathlib_dbl_overflow</STRONG> (ARM, 16 bytes, Stack size 0 bytes, dunder.o(i.__mathlib_dbl_overflow))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __mathlib_dbl_overflow &rArr; __ARM_scalbn
</UL>
<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_scalbn (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[b7]"></a>__mathlib_dbl_underflow</STRONG> (ARM, 16 bytes, Stack size 0 bytes, dunder.o(i.__mathlib_dbl_underflow))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __mathlib_dbl_underflow &rArr; __ARM_scalbn
</UL>
<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_scalbn (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[23f]"></a>__set_errno</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, errno.o(i.__set_errno))
<BR><BR>[Called By]<UL><LI><a href="#[240]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrt (via Veneer)
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via BLX)
</UL>

<P><STRONG><a name="[bc]"></a>app_active_report_finished_and_disconnect</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_active_report.o(i.app_active_report_finished_and_disconnect))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = app_active_report_finished_and_disconnect &rArr; app_port_ble_gap_disconnect &rArr; tuya_ble_gap_disconnect &rArr; bk_disconnect &rArr; appm_disconnect
</UL>
<BR>[Calls]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_gap_disconnect
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[be]"></a>app_active_report_finished_and_disconnect_handler</STRONG> (Thumb, 78 bytes, Stack size 16 bytes, app_active_report.o(i.app_active_report_finished_and_disconnect_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = app_active_report_finished_and_disconnect_handler &rArr; bk_adv_param_set &rArr; appm_stop_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_update_advDataAndScanRsp
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_param_set
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[c3]"></a>app_active_report_outtime_cb_handler</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.app_active_report_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 192<LI>Call Chain = app_active_report_outtime_cb_handler &rArr; app_active_report_stop &rArr; bk_adv_param_set &rArr; appm_stop_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_stop
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[c5]"></a>app_active_report_start</STRONG> (Thumb, 78 bytes, Stack size 16 bytes, app_active_report.o(i.app_active_report_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = app_active_report_start &rArr; bk_adv_param_set &rArr; appm_stop_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_update_advDataAndScanRsp
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_param_set
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[c4]"></a>app_active_report_stop</STRONG> (Thumb, 92 bytes, Stack size 16 bytes, app_active_report.o(i.app_active_report_stop))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = app_active_report_stop &rArr; bk_adv_param_set &rArr; appm_stop_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_stop
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_param_set
</UL>
<BR>[Called By]<UL><LI><a href="#[c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_outtime_cb_handler
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
</UL>

<P><STRONG><a name="[da]"></a>app_common_evt_send</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, app_common.o(i.app_common_evt_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = app_common_evt_send &rArr; app_port_ble_custom_event_send &rArr; tuya_ble_custom_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_custom_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_with_data
<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>

<P><STRONG><a name="[c2]"></a>app_common_evt_send_only_evt</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, app_common.o(i.app_common_evt_send_only_evt))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_malloc
<LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send
</UL>
<BR>[Called By]<UL><LI><a href="#[12]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_with_disconn_outtime_cb
<LI><a href="#[17]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_with_disconn2_outtime_cb
<LI><a href="#[10]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_report_outtime_cb
<LI><a href="#[f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_param_update_outtime_cb
<LI><a href="#[13]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_monitor_outtime_cb
<LI><a href="#[11]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bonding_conn_outtime_cb
<LI><a href="#[15]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_reset_outtime_cb
<LI><a href="#[14]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_outtime_cb
<LI><a href="#[16]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_outtime_cb
<LI><a href="#[1eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_creat_handler
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_disconnect_ind_handler
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_connection_req_ind_handler
</UL>

<P><STRONG><a name="[dd]"></a>app_common_evt_send_with_data</STRONG> (Thumb, 44 bytes, Stack size 24 bytes, app_common.o(i.app_common_evt_send_with_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = app_common_evt_send_with_data &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_malloc
<LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send
</UL>
<BR>[Called By]<UL><LI><a href="#[1eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_creat_handler
</UL>

<P><STRONG><a name="[de]"></a>app_common_init</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, app_common.o(i.app_common_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 612<LI>Call Chain = app_common_init &rArr; app_port_ble_sdk_init &rArr; tuya_ble_sdk_init &rArr; tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_flash_init
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_init
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_sdk_init
<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_callback_queue_register
</UL>
<BR>[Called By]<UL><LI><a href="#[1dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_common_init
</UL>

<P><STRONG><a name="[43]"></a>app_fff0_add_fff0s</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, app_fff0.o(i.app_fff0_add_fff0s))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = app_fff0_add_fff0s
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app.o(.constdata)
</UL>
<P><STRONG><a name="[eb]"></a>app_fff1_send_lvl</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, app_fff0.o(i.app_fff1_send_lvl))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = app_fff1_send_lvl &rArr; prf_get_task_from_id
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[20]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_get_task_from_id
</UL>
<BR>[Called By]<UL><LI><a href="#[167]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_svc_send_data
</UL>

<P><STRONG><a name="[d0]"></a>app_ota_disconn_handler</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, app_ota.o(i.app_ota_disconn_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = app_ota_disconn_handler &rArr; app_ota_exit &rArr; lock_timer_start &rArr; app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_exit
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[e8]"></a>app_ota_handler</STRONG> (Thumb, 128 bytes, Stack size 32 bytes, app_ota.o(i.app_ota_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 428<LI>Call Chain = app_ota_handler &rArr; app_ota_file_offset_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
</UL>

<P><STRONG><a name="[1e9]"></a>app_ota_init</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, app_ota.o(i.app_ota_init))
<BR><BR>[Called By]<UL><LI><a href="#[1dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_common_init
</UL>

<P><STRONG><a name="[107]"></a>app_port_aes128_cbc_encrypt</STRONG> (Thumb, 12 bytes, Stack size 16 bytes, app_port.o(i.app_port_aes128_cbc_encrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 460<LI>Call Chain = app_port_aes128_cbc_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[e1]"></a>app_port_ble_callback_queue_register</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_ble_callback_queue_register))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = app_port_ble_callback_queue_register &rArr; tuya_ble_callback_queue_register &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[109]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_callback_queue_register
</UL>
<BR>[Called By]<UL><LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_init
</UL>

<P><STRONG><a name="[105]"></a>app_port_ble_conn_evt_ext</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, app_port.o(i.app_port_ble_conn_evt_ext))
<BR><BR>[Called By]<UL><LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
</UL>

<P><STRONG><a name="[db]"></a>app_port_ble_custom_event_send</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_ble_custom_event_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = app_port_ble_custom_event_send &rArr; tuya_ble_custom_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[10a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_custom_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send
</UL>

<P><STRONG><a name="[bd]"></a>app_port_ble_gap_disconnect</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_ble_gap_disconnect))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = app_port_ble_gap_disconnect &rArr; tuya_ble_gap_disconnect &rArr; bk_disconnect &rArr; appm_disconnect
</UL>
<BR>[Calls]<UL><LI><a href="#[10b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_disconnect
</UL>
<BR>[Called By]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_with_disconn_outtime_cb_handler
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_monitor_outtime_cb_handler
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_finished_and_disconnect
</UL>

<P><STRONG><a name="[e0]"></a>app_port_ble_sdk_init</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_ble_sdk_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 604<LI>Call Chain = app_port_ble_sdk_init &rArr; tuya_ble_sdk_init &rArr; tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
</UL>
<BR>[Called By]<UL><LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_init
</UL>

<P><STRONG><a name="[10d]"></a>app_port_check_sum</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_check_sum))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = app_port_check_sum &rArr; cpt_check_sum
</UL>
<BR>[Calls]<UL><LI><a href="#[10e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpt_check_sum
</UL>
<BR>[Called By]<UL><LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_rsp
<LI><a href="#[222]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_rsp
</UL>

<P><STRONG><a name="[104]"></a>app_port_conn_param_update</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, app_port.o(i.app_port_conn_param_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = app_port_conn_param_update &rArr; bk_conn_param_update &rArr; appm_update_param
</UL>
<BR>[Calls]<UL><LI><a href="#[10f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_conn_param_update
</UL>
<BR>[Called By]<UL><LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_param_update_outtime_cb_handler
<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
</UL>

<P><STRONG><a name="[f0]"></a>app_port_crc16_compute</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_crc16_compute))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = app_port_crc16_compute &rArr; cpt_crc16_compute
</UL>
<BR>[Calls]<UL><LI><a href="#[110]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpt_crc16_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[1f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_sync_handler
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
</UL>

<P><STRONG><a name="[f3]"></a>app_port_crc32_compute</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_crc32_compute))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = app_port_crc32_compute &rArr; cpt_crc32_compute
</UL>
<BR>[Calls]<UL><LI><a href="#[111]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpt_crc32_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_get_crc32_in_flash
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
</UL>

<P><STRONG><a name="[112]"></a>app_port_device_reset</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, app_port.o(i.app_port_device_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = app_port_device_reset &rArr; tuya_ble_device_reset &rArr; bk_system_reset &rArr; platform_reset &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[113]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_with_disconn2_outtime_cb_handler
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_reset_outtime_cb_handler
</UL>

<P><STRONG><a name="[114]"></a>app_port_dp_data_report</STRONG> (Thumb, 48 bytes, Stack size 16 bytes, app_port.o(i.app_port_dp_data_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = app_port_dp_data_report &rArr; tuya_ble_dp_data_report &rArr; data_2_klvlist &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
</UL>
<BR>[Called By]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_meth_sync_new_report
<LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
<LI><a href="#[214]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_state_sync_report
<LI><a href="#[1ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_creat_sub_report
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[117]"></a>app_port_dp_data_with_time_report</STRONG> (Thumb, 98 bytes, Stack size 32 bytes, app_port.o(i.app_port_dp_data_with_time_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = app_port_dp_data_with_time_report &rArr; tuya_ble_dp_data_with_time_report &rArr; data_2_klvlist &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
</UL>
<BR>[Called By]<UL><LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
<LI><a href="#[217]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_offline_pwd
<LI><a href="#[1ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report
<LI><a href="#[215]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_combine_report
<LI><a href="#[1e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_alarm_record_report
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[119]"></a>app_port_factory_test_process</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_factory_test_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 1064<LI>Call Chain = app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[11a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;factory_test_process
</UL>
<BR>[Called By]<UL><LI><a href="#[29a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_app_production_test_process
</UL>

<P><STRONG><a name="[d9]"></a>app_port_free</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_free))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = app_port_free &rArr; tuya_ble_free &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[11c]"></a>app_port_get_bt_mac_addr</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, app_port.o(i.app_port_get_bt_mac_addr))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = app_port_get_bt_mac_addr &rArr; bk_get_bt_mac_addr &rArr; bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[11d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_get_bt_mac_addr
</UL>
<BR>[Called By]<UL><LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
</UL>

<P><STRONG><a name="[11e]"></a>app_port_get_connect_status</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_get_connect_status))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = app_port_get_connect_status
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
</UL>
<BR>[Called By]<UL><LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
</UL>

<P><STRONG><a name="[11f]"></a>app_port_get_old_timestamp</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_get_old_timestamp))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = app_port_get_old_timestamp
</UL>
<BR>[Calls]<UL><LI><a href="#[120]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_get_old_timestamp
</UL>
<BR>[Called By]<UL><LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
</UL>

<P><STRONG><a name="[121]"></a>app_port_get_timestamp</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_get_timestamp))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = app_port_get_timestamp
</UL>
<BR>[Calls]<UL><LI><a href="#[122]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_get_timestamp
</UL>
<BR>[Called By]<UL><LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
<LI><a href="#[217]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_offline_pwd
<LI><a href="#[1ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report
<LI><a href="#[215]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_combine_report
<LI><a href="#[1fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dynamic_pwd_verify
<LI><a href="#[1e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_alarm_record_report
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[219]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_calculate_T2_T3
</UL>

<P><STRONG><a name="[123]"></a>app_port_local_clock_start</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, app_port.o(i.app_port_local_clock_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = app_port_local_clock_start &rArr; bk_local_timer_start &rArr; rtc_alarm_init
</UL>
<BR>[Calls]<UL><LI><a href="#[124]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_local_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[1dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_common_init
</UL>

<P><STRONG><a name="[dc]"></a>app_port_malloc</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_port.o(i.app_port_malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_with_data
<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>

<P><STRONG><a name="[126]"></a>app_port_num_array_2_int</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_num_array_2_int))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = app_port_num_array_2_int &rArr; cpt_num_array_2_int
</UL>
<BR>[Calls]<UL><LI><a href="#[127]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpt_num_array_2_int
</UL>
<BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
<LI><a href="#[219]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_calculate_T2_T3
</UL>

<P><STRONG><a name="[f5]"></a>app_port_nv_del</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_del))
<BR><BR>[Stack]<UL><LI>Max Depth = 244<LI>Call Chain = app_port_nv_del &rArr; sf_nv_delete &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[128]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_delete
</UL>
<BR>[Called By]<UL><LI><a href="#[1fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_delete
<LI><a href="#[207]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
</UL>

<P><STRONG><a name="[f9]"></a>app_port_nv_erase</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_erase))
<BR><BR>[Stack]<UL><LI>Max Depth = 260<LI>Call Chain = app_port_nv_erase &rArr; tuya_ble_nv_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[129]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
</UL>

<P><STRONG><a name="[fe]"></a>app_port_nv_get</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_get))
<BR><BR>[Stack]<UL><LI>Max Depth = 240<LI>Call Chain = app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[12a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_read
</UL>
<BR>[Called By]<UL><LI><a href="#[201]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evtid_load
<LI><a href="#[1ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_load
<LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
<LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_query_info_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[204]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_load
<LI><a href="#[21f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_get_T0
<LI><a href="#[1e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_load
</UL>

<P><STRONG><a name="[12b]"></a>app_port_nv_init</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 276<LI>Call Chain = app_port_nv_init &rArr; sf_nv_init &rArr; update_area_header &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[12d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_init
<LI><a href="#[12c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_init
</UL>
<BR>[Called By]<UL><LI><a href="#[1dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_common_init
</UL>

<P><STRONG><a name="[f7]"></a>app_port_nv_read</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = app_port_nv_read &rArr; tuya_ble_nv_read &rArr; bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[101]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_read
</UL>
<BR>[Called By]<UL><LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
</UL>

<P><STRONG><a name="[100]"></a>app_port_nv_set</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_set))
<BR><BR>[Stack]<UL><LI>Max Depth = 332<LI>Call Chain = app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
</UL>
<BR>[Called By]<UL><LI><a href="#[200]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evtid_save
<LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[1f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_save
<LI><a href="#[1fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_set_T0
<LI><a href="#[1f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_setkey_handler
<LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
<LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_query_info_handler
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[20e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save
<LI><a href="#[21c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_save
</UL>

<P><STRONG><a name="[12f]"></a>app_port_nv_set_default</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_set_default))
<BR><BR>[Stack]<UL><LI>Max Depth = 260<LI>Call Chain = app_port_nv_set_default &rArr; sf_port_flash_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[130]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_port_flash_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[202]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_flash_erease_all
</UL>

<P><STRONG><a name="[f1]"></a>app_port_nv_write</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_nv_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 172<LI>Call Chain = app_port_nv_write &rArr; tuya_ble_nv_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[131]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_write
</UL>
<BR>[Called By]<UL><LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
</UL>

<P><STRONG><a name="[106]"></a>app_port_ota_rsp</STRONG> (Thumb, 50 bytes, Stack size 24 bytes, app_port.o(i.app_port_ota_rsp))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = app_port_ota_rsp &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[132]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_ota_response
</UL>
<BR>[Called By]<UL><LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_rsp
</UL>

<P><STRONG><a name="[ef]"></a>app_port_reverse_byte</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_reverse_byte))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = app_port_reverse_byte &rArr; cpt_reverse_byte
</UL>
<BR>[Calls]<UL><LI><a href="#[133]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpt_reverse_byte
</UL>
<BR>[Called By]<UL><LI><a href="#[1f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_setkey_handler
<LI><a href="#[11a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;factory_test_process
<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
<LI><a href="#[175]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_init_bt_mac_addr
</UL>

<P><STRONG><a name="[134]"></a>app_port_set_bt_mac_addr</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_set_bt_mac_addr))
<BR><BR>[Stack]<UL><LI>Max Depth = 268<LI>Call Chain = app_port_set_bt_mac_addr &rArr; bk_set_bt_mac_addr &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[135]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_set_bt_mac_addr
</UL>
<BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
</UL>

<P><STRONG><a name="[136]"></a>app_port_string_op_hex2hexstr</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_string_op_hex2hexstr))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = app_port_string_op_hex2hexstr &rArr; ty_string_op_hex2hexstr &rArr; ty_string_op_int2hex
</UL>
<BR>[Calls]<UL><LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_hex2hexstr
</UL>
<BR>[Called By]<UL><LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
</UL>

<P><STRONG><a name="[138]"></a>app_port_string_op_hexstr2hex</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_string_op_hexstr2hex))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = app_port_string_op_hexstr2hex &rArr; ty_string_op_hexstr2hex &rArr; ty_string_op_hex2int
</UL>
<BR>[Calls]<UL><LI><a href="#[139]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_hexstr2hex
</UL>
<BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[175]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_init_bt_mac_addr
</UL>

<P><STRONG><a name="[13a]"></a>app_port_string_op_intstr2int</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_string_op_intstr2int))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = app_port_string_op_intstr2int &rArr; ty_string_op_intstr2int &rArr; ty_string_op_hex2int
</UL>
<BR>[Calls]<UL><LI><a href="#[13b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_intstr2int
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[13c]"></a>app_port_timer_create</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_timer_create))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = app_port_timer_create &rArr; tuya_ble_timer_create &rArr; bk_timer_create
</UL>
<BR>[Calls]<UL><LI><a href="#[13d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_timer_create
</UL>
<BR>[Called By]<UL><LI><a href="#[1ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_creat
</UL>

<P><STRONG><a name="[13e]"></a>app_port_timer_start</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_timer_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[13f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
</UL>

<P><STRONG><a name="[140]"></a>app_port_timer_stop</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_timer_stop))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = app_port_timer_stop &rArr; tuya_ble_timer_stop &rArr; bk_timer_stop &rArr; bk_timer_stop_0
</UL>
<BR>[Calls]<UL><LI><a href="#[141]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_timer_stop
</UL>
<BR>[Called By]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_stop
</UL>

<P><STRONG><a name="[142]"></a>app_port_tuya_ble_device_factory_reset</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_tuya_ble_device_factory_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = app_port_tuya_ble_device_factory_reset &rArr; tuya_ble_device_factory_reset &rArr; tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[143]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_factory_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_factory_handler
</UL>

<P><STRONG><a name="[144]"></a>app_port_uart_send_data</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, app_port.o(i.app_port_uart_send_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = app_port_uart_send_data &rArr; tuya_ble_uart_send_data &rArr; bk_uart1_send &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[145]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_send_data
</UL>
<BR>[Called By]<UL><LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_rsp
</UL>

<P><STRONG><a name="[e6]"></a>app_port_update_timestamp</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, app_port.o(i.app_port_update_timestamp))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = app_port_update_timestamp
</UL>
<BR>[Calls]<UL><LI><a href="#[146]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_update_timestamp
</UL>
<BR>[Called By]<UL><LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
</UL>

<P><STRONG><a name="[e2]"></a>app_test_init</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, app_test.o(i.app_test_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = app_test_init &rArr; lock_timer_start &rArr; app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_init
</UL>

<P><STRONG><a name="[d6]"></a>app_test_outtime_cb_handler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, lock_timer.o(i.app_test_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = app_test_outtime_cb_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[147]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_outtime_handler
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[147]"></a>app_test_outtime_handler</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, app_test.o(i.app_test_outtime_handler))
<BR><BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_outtime_cb_handler
</UL>

<P><STRONG><a name="[148]"></a>app_test_pre_process</STRONG> (Thumb, 58 bytes, Stack size 24 bytes, app_test.o(i.app_test_pre_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 500<LI>Call Chain = app_test_pre_process &rArr; app_test_process &rArr; app_test_write_auth_info_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
</UL>
<BR>[Called By]<UL><LI><a href="#[11a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;factory_test_process
</UL>

<P><STRONG><a name="[d7]"></a>app_test_reset_outtime_cb_handler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, lock_timer.o(i.app_test_reset_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = app_test_reset_outtime_cb_handler &rArr; app_port_device_reset &rArr; tuya_ble_device_reset &rArr; bk_system_reset &rArr; platform_reset &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[112]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_device_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[1db]"></a>appm_add_svc</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, app.o(i.appm_add_svc))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = appm_add_svc
</UL>
<BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
</UL>

<P><STRONG><a name="[156]"></a>appm_disconnect</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, app.o(i.appm_disconnect))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = appm_disconnect
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Called By]<UL><LI><a href="#[16a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_disconnect
</UL>

<P><STRONG><a name="[157]"></a>appm_get_dev_name</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, app.o(i.appm_get_dev_name))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = appm_get_dev_name
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_get_dev_info_req_ind_handler
</UL>

<P><STRONG><a name="[158]"></a>appm_init</STRONG> (Thumb, 84 bytes, Stack size 24 bytes, app.o(i.appm_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = appm_init
</UL>
<BR>[Calls]<UL><LI><a href="#[15c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rand
<LI><a href="#[15d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nvds_put
<LI><a href="#[15b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nvds_get
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[159]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_task_create
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[15e]"></a>appm_start_advertising</STRONG> (Thumb, 164 bytes, Stack size 24 bytes, app.o(i.appm_start_advertising))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = appm_start_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2uiz
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_scalbn
</UL>
<BR>[Called By]<UL><LI><a href="#[164]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_start
</UL>

<P><STRONG><a name="[15f]"></a>appm_stop_advertising</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, app.o(i.appm_stop_advertising))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = appm_stop_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Called By]<UL><LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_param_set
</UL>

<P><STRONG><a name="[160]"></a>appm_update_adv_data</STRONG> (Thumb, 84 bytes, Stack size 40 bytes, app.o(i.appm_update_adv_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = appm_update_adv_data
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Called By]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_update_advDataAndScanRsp
</UL>

<P><STRONG><a name="[161]"></a>appm_update_param</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, app.o(i.appm_update_param))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = appm_update_param
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Called By]<UL><LI><a href="#[10f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_conn_param_update
</UL>

<P><STRONG><a name="[2d]"></a>assert_err</STRONG> (Thumb, 36 bytes, Stack size 32 bytes, arch_main.o(i.assert_err))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = assert_err &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[2e]"></a>assert_param</STRONG> (Thumb, 38 bytes, Stack size 32 bytes, arch_main.o(i.assert_param))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = assert_param &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[bf]"></a>bk_adv_param_set</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, bk_scan_adv.o(i.bk_adv_param_set))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = bk_adv_param_set &rArr; appm_stop_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[15f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_stop_advertising
</UL>
<BR>[Called By]<UL><LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_stop
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_start
<LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_finished_and_disconnect_handler
</UL>

<P><STRONG><a name="[164]"></a>bk_adv_start</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, bk_scan_adv.o(i.bk_adv_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = bk_adv_start &rArr; appm_start_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
</UL>
<BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_disconnect_ind_handler
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_connection_req_ind_handler
</UL>

<P><STRONG><a name="[c0]"></a>bk_adv_update_advDataAndScanRsp</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, bk_scan_adv.o(i.bk_adv_update_advDataAndScanRsp))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = bk_adv_update_advDataAndScanRsp &rArr; appm_update_adv_data
</UL>
<BR>[Calls]<UL><LI><a href="#[160]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_adv_data
</UL>
<BR>[Called By]<UL><LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_start
<LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_finished_and_disconnect_handler
<LI><a href="#[296]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_advertising_scan_rsp_data_update
<LI><a href="#[295]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_advertising_adv_data_update
</UL>

<P><STRONG><a name="[165]"></a>bk_ble_notify</STRONG> (Thumb, 94 bytes, Stack size 16 bytes, bk_svc.o(i.bk_ble_notify))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_ble_notify
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[2a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gatt_send_data
</UL>

<P><STRONG><a name="[166]"></a>bk_ble_notify_handler</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, bk_svc.o(i.bk_ble_notify_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 44<LI>Call Chain = bk_ble_notify_handler &rArr; bk_svc_send_data &rArr; app_fff1_send_lvl &rArr; prf_get_task_from_id
</UL>
<BR>[Calls]<UL><LI><a href="#[167]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_svc_send_data
</UL>
<BR>[Called By]<UL><LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[10f]"></a>bk_conn_param_update</STRONG> (Thumb, 50 bytes, Stack size 32 bytes, bk_ble.o(i.bk_conn_param_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = bk_conn_param_update &rArr; appm_update_param
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[161]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_update_param
</UL>
<BR>[Called By]<UL><LI><a href="#[104]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_conn_param_update
</UL>

<P><STRONG><a name="[168]"></a>bk_delay_ms</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, bk_timer.o(i.bk_delay_ms))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_delay_ms &rArr; Delay_ms
</UL>
<BR>[Calls]<UL><LI><a href="#[169]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_ms
</UL>
<BR>[Called By]<UL><LI><a href="#[2a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_delay_ms
</UL>

<P><STRONG><a name="[16a]"></a>bk_disconnect</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, bk_ble.o(i.bk_disconnect))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_disconnect &rArr; appm_disconnect
</UL>
<BR>[Calls]<UL><LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_disconnect
</UL>
<BR>[Called By]<UL><LI><a href="#[10b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_disconnect
</UL>

<P><STRONG><a name="[16b]"></a>bk_enter_critical</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, bk_common.o(i.bk_enter_critical))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = bk_enter_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[16d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_irq (via BLX)
<LI><a href="#[16c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[1bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output_lock
</UL>

<P><STRONG><a name="[16e]"></a>bk_exit_critical</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, bk_common.o(i.bk_exit_critical))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[170]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_irq (via BLX)
<LI><a href="#[16f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[1bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output_unlock
</UL>

<P><STRONG><a name="[171]"></a>bk_flash_erase</STRONG> (Thumb, 24 bytes, Stack size 16 bytes, bk_flash.o(i.bk_flash_erase))
<BR><BR>[Stack]<UL><LI>Max Depth = 244<LI>Call Chain = bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[172]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_wdt_feed
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[129]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_erase
<LI><a href="#[130]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_port_flash_erase
<LI><a href="#[135]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_set_bt_mac_addr
</UL>

<P><STRONG><a name="[12c]"></a>bk_flash_init</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, bk_flash.o(i.bk_flash_init))
<BR><BR>[Called By]<UL><LI><a href="#[12b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_init
</UL>

<P><STRONG><a name="[173]"></a>bk_flash_read</STRONG> (Thumb, 28 bytes, Stack size 24 bytes, bk_flash.o(i.bk_flash_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[172]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_wdt_feed
<LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read
</UL>
<BR>[Called By]<UL><LI><a href="#[101]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_read
<LI><a href="#[11d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_get_bt_mac_addr
<LI><a href="#[175]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_init_bt_mac_addr
<LI><a href="#[239]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_port_flash_read
</UL>

<P><STRONG><a name="[174]"></a>bk_flash_write</STRONG> (Thumb, 28 bytes, Stack size 24 bytes, bk_flash.o(i.bk_flash_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 156<LI>Call Chain = bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[172]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_wdt_feed
<LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
</UL>
<BR>[Called By]<UL><LI><a href="#[131]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_write
<LI><a href="#[135]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_set_bt_mac_addr
<LI><a href="#[23c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_port_flash_write
</UL>

<P><STRONG><a name="[11d]"></a>bk_get_bt_mac_addr</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, bk_ble.o(i.bk_get_bt_mac_addr))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = bk_get_bt_mac_addr &rArr; bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[173]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_read
</UL>
<BR>[Called By]<UL><LI><a href="#[11c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_bt_mac_addr
</UL>

<P><STRONG><a name="[120]"></a>bk_get_old_timestamp</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, bk_timer.o(i.bk_get_old_timestamp))
<BR><BR>[Called By]<UL><LI><a href="#[11f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_old_timestamp
</UL>

<P><STRONG><a name="[122]"></a>bk_get_timestamp</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, bk_timer.o(i.bk_get_timestamp))
<BR><BR>[Called By]<UL><LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
</UL>

<P><STRONG><a name="[175]"></a>bk_init_bt_mac_addr</STRONG> (Thumb, 92 bytes, Stack size 24 bytes, bk_ble.o(i.bk_init_bt_mac_addr))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = bk_init_bt_mac_addr &rArr; bk_log_hexdump &rArr; elog_hexdump &rArr; elog_port_output &rArr; uart2_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memcmp
<LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[138]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_string_op_hexstr2hex
<LI><a href="#[173]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_read
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[124]"></a>bk_local_timer_start</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, bk_timer.o(i.bk_local_timer_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = bk_local_timer_start &rArr; rtc_alarm_init
</UL>
<BR>[Calls]<UL><LI><a href="#[176]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rtc_alarm_init
</UL>
<BR>[Called By]<UL><LI><a href="#[123]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_local_clock_start
</UL>

<P><STRONG><a name="[102]"></a>bk_log_hexdump</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, bk_common.o(i.bk_log_hexdump))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = bk_log_hexdump &rArr; elog_hexdump &rArr; elog_port_output &rArr; uart2_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
<LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
<LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[1dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_common_init
<LI><a href="#[106]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ota_rsp
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
<LI><a href="#[175]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_init_bt_mac_addr
</UL>

<P><STRONG><a name="[29f]"></a>bk_log_hexdump_empty</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, bk_common.o(i.bk_log_hexdump_empty))
<BR><BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
<LI><a href="#[132]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_ota_response
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[294]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_id_encrypt
<LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
</UL>

<P><STRONG><a name="[178]"></a>bk_log_init</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, bk_common.o(i.bk_log_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 192<LI>Call Chain = bk_log_init &rArr; elog_init &rArr; elog_set_filter_lvl &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[17b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_start
<LI><a href="#[17a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_set_fmt
<LI><a href="#[179]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_init
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[c]"></a>bk_rtc_handler</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, bk_timer.o(i.bk_rtc_handler))
<BR>[Address Reference Count : 1]<UL><LI> bk_timer.o(i.bk_local_timer_start)
</UL>
<P><STRONG><a name="[135]"></a>bk_set_bt_mac_addr</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, bk_ble.o(i.bk_set_bt_mac_addr))
<BR><BR>[Stack]<UL><LI>Max Depth = 260<LI>Call Chain = bk_set_bt_mac_addr &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[174]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_write
<LI><a href="#[171]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[134]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_set_bt_mac_addr
</UL>

<P><STRONG><a name="[17c]"></a>bk_svc_receive_data</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, bk_svc.o(i.bk_svc_receive_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = bk_svc_receive_data &rArr; tuya_ble_gatt_receive_data &rArr; tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[17d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gatt_receive_data
</UL>
<BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff2_writer_req_handler
</UL>

<P><STRONG><a name="[167]"></a>bk_svc_send_data</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, bk_svc.o(i.bk_svc_send_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = bk_svc_send_data &rArr; app_fff1_send_lvl &rArr; prf_get_task_from_id
</UL>
<BR>[Calls]<UL><LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff1_send_lvl
</UL>
<BR>[Called By]<UL><LI><a href="#[166]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_ble_notify_handler
</UL>

<P><STRONG><a name="[1de]"></a>bk_svc_send_data_complete</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, bk_svc.o(i.bk_svc_send_data_complete))
<BR><BR>[Called By]<UL><LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_cmp_evt_handler
</UL>

<P><STRONG><a name="[17e]"></a>bk_system_reset</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, bk_common.o(i.bk_system_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = bk_system_reset &rArr; platform_reset &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;platform_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[113]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_reset
</UL>

<P><STRONG><a name="[1dd]"></a>bk_test</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, bk_test.o(i.bk_test))
<BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
</UL>

<P><STRONG><a name="[2cf]"></a>bk_timer_create</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, bk_timer.o(i.bk_timer_create))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_timer_create
</UL>
<BR>[Called By]<UL><LI><a href="#[13d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_timer_create
</UL>

<P><STRONG><a name="[17f]"></a>bk_timer_handler</STRONG> (Thumb, 98 bytes, Stack size 16 bytes, bk_timer.o(i.bk_timer_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[180]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_timer_set
</UL>
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer9_handler
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer8_handler
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer7_handler
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer6_handler
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer5_handler
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer4_handler
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer3_handler
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer2_handler
<LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer1_handler
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer19_handler
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer18_handler
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer17_handler
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer16_handler
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer15_handler
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer14_handler
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer13_handler
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer12_handler
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer11_handler
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer10_handler
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer0_handler
</UL>

<P><STRONG><a name="[181]"></a>bk_timer_start</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, bk_timer.o(i.bk_timer_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[182]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_start_0
</UL>
<BR>[Called By]<UL><LI><a href="#[13f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_timer_start
</UL>

<P><STRONG><a name="[182]"></a>bk_timer_start_0</STRONG> (Thumb, 52 bytes, Stack size 16 bytes, bk_timer.o(i.bk_timer_start_0))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[180]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_timer_set
</UL>
<BR>[Called By]<UL><LI><a href="#[181]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_start
</UL>

<P><STRONG><a name="[183]"></a>bk_timer_stop</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, bk_timer.o(i.bk_timer_stop))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_timer_stop &rArr; bk_timer_stop_0
</UL>
<BR>[Calls]<UL><LI><a href="#[184]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_stop_0
</UL>
<BR>[Called By]<UL><LI><a href="#[141]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_timer_stop
</UL>

<P><STRONG><a name="[184]"></a>bk_timer_stop_0</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, bk_timer.o(i.bk_timer_stop_0))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = bk_timer_stop_0
</UL>
<BR>[Calls]<UL><LI><a href="#[185]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_timer_clear
</UL>
<BR>[Called By]<UL><LI><a href="#[183]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_stop
</UL>

<P><STRONG><a name="[186]"></a>bk_uart1_init</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, bk_uart.o(i.bk_uart1_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_uart1_init &rArr; uart_init
</UL>
<BR>[Calls]<UL><LI><a href="#[187]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_init
<LI><a href="#[188]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_cb_register
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[189]"></a>bk_uart1_send</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, bk_uart.o(i.bk_uart1_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_uart1_send &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_send
</UL>
<BR>[Called By]<UL><LI><a href="#[145]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_send_data
</UL>

<P><STRONG><a name="[18a]"></a>bk_uart2_init</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, bk_uart.o(i.bk_uart2_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = bk_uart2_init &rArr; uart2_init
</UL>
<BR>[Calls]<UL><LI><a href="#[18b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_init
<LI><a href="#[18c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_cb_register
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[146]"></a>bk_update_timestamp</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, bk_timer.o(i.bk_update_timestamp))
<BR><BR>[Called By]<UL><LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_update_timestamp
</UL>

<P><STRONG><a name="[172]"></a>bk_wdt_feed</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, bk_common.o(i.bk_wdt_feed))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = bk_wdt_feed
</UL>
<BR>[Calls]<UL><LI><a href="#[18d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wdt_feed
</UL>
<BR>[Called By]<UL><LI><a href="#[174]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_write
<LI><a href="#[173]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_read
<LI><a href="#[171]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_erase
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[d3]"></a>bonding_conn_outtime_cb_handler</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.bonding_conn_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 380<LI>Call Chain = bonding_conn_outtime_cb_handler &rArr; lock_offline_evt_report &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[192]"></a>byte_str_concatenate</STRONG> (Thumb, 80 bytes, Stack size 40 bytes, fpe_str.o(i.byte_str_concatenate))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = byte_str_concatenate &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[194]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;release_str
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[195]"></a>byte_str_copy_of_range</STRONG> (Thumb, 72 bytes, Stack size 40 bytes, fpe_str.o(i.byte_str_copy_of_range))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = byte_str_copy_of_range &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[194]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;release_str
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[1a7]"></a>byte_str_to_num</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, fpe_str.o(i.byte_str_to_num))
<BR><BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[196]"></a>calcb</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, ff1.o(i.calcb))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = calcb &rArr; ceil2
</UL>
<BR>[Calls]<UL><LI><a href="#[197]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ceil2
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[198]"></a>calcc</STRONG> (Thumb, 74 bytes, Stack size 40 bytes, ff1.o(i.calcc))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = calcc &rArr; fpe_mod_pow_radix &rArr; fpe_mod_pow
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[19a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod_pow_radix
<LI><a href="#[199]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_int_pow
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[19b]"></a>calcd</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, ff1.o(i.calcd))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = calcd &rArr; ceil2
</UL>
<BR>[Calls]<UL><LI><a href="#[197]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ceil2
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[197]"></a>ceil2</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, fpe_math.o(i.ceil2))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ceil2
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[19b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcd
<LI><a href="#[196]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcb
</UL>

<P><STRONG><a name="[2c0]"></a>check_sum</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, tuya_ble_utils.o(i.check_sum))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = check_sum
</UL>
<BR>[Called By]<UL><LI><a href="#[2bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ble_factory_test_req
<LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
</UL>

<P><STRONG><a name="[282]"></a>check_uart_stop</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, uart.o(i.check_uart_stop))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[1d5]"></a>clr_flash_qwfr</STRONG> (Thumb, 74 bytes, Stack size 0 bytes, flash.o(i.clr_flash_qwfr))
<BR><BR>[Called By]<UL><LI><a href="#[1d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_set_dual_mode
</UL>

<P><STRONG><a name="[d5]"></a>conn_monitor_outtime_cb_handler</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, lock_timer.o(i.conn_monitor_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = conn_monitor_outtime_cb_handler &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_gap_disconnect
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[d1]"></a>conn_param_update_outtime_cb_handler</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, lock_timer.o(i.conn_param_update_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = conn_param_update_outtime_cb_handler &rArr; app_port_conn_param_update &rArr; bk_conn_param_update &rArr; appm_update_param
</UL>
<BR>[Calls]<UL><LI><a href="#[104]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_conn_param_update
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[10e]"></a>cpt_check_sum</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, cpt_math.o(i.cpt_check_sum))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = cpt_check_sum
</UL>
<BR>[Called By]<UL><LI><a href="#[10d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_check_sum
</UL>

<P><STRONG><a name="[110]"></a>cpt_crc16_compute</STRONG> (Thumb, 50 bytes, Stack size 20 bytes, cpt_math.o(i.cpt_crc16_compute))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = cpt_crc16_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_crc16_compute
</UL>

<P><STRONG><a name="[111]"></a>cpt_crc32_compute</STRONG> (Thumb, 56 bytes, Stack size 20 bytes, cpt_math.o(i.cpt_crc32_compute))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = cpt_crc32_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_crc32_compute
</UL>

<P><STRONG><a name="[127]"></a>cpt_num_array_2_int</STRONG> (Thumb, 36 bytes, Stack size 8 bytes, cpt_math.o(i.cpt_num_array_2_int))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = cpt_num_array_2_int
</UL>
<BR>[Called By]<UL><LI><a href="#[126]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_num_array_2_int
</UL>

<P><STRONG><a name="[133]"></a>cpt_reverse_byte</STRONG> (Thumb, 30 bytes, Stack size 16 bytes, cpt_math.o(i.cpt_reverse_byte))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = cpt_reverse_byte
</UL>
<BR>[Called By]<UL><LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
</UL>

<P><STRONG><a name="[250]"></a>cpu_idle_sleep</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, icu.o(i.cpu_idle_sleep))
<BR><BR>[Called By]<UL><LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[24f]"></a>cpu_reduce_voltage_sleep</STRONG> (Thumb, 66 bytes, Stack size 8 bytes, icu.o(i.cpu_reduce_voltage_sleep))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = cpu_reduce_voltage_sleep
</UL>
<BR>[Called By]<UL><LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[99]"></a>cpu_wakeup</STRONG> (Thumb, 56 bytes, Stack size 4 bytes, icu.o(i.cpu_wakeup))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = cpu_wakeup &rArr; switch_clk
</UL>
<BR>[Calls]<UL><LI><a href="#[19c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;switch_clk
</UL>
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Exception
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FIQ_Exception
</UL>

<P><STRONG><a name="[19d]"></a>create_byte_str</STRONG> (Thumb, 28 bytes, Stack size 24 bytes, fpe_str.o(i.create_byte_str))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = create_byte_str &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
</UL>
<BR>[Called By]<UL><LI><a href="#[1d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_decrypt
<LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[19e]"></a>data_2_klvlist</STRONG> (Thumb, 212 bytes, Stack size 40 bytes, tuya_ble_mutli_tsf_protocol.o(i.data_2_klvlist))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = data_2_klvlist &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[19f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free_klv_list
</UL>
<BR>[Called By]<UL><LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
</UL>

<P><STRONG><a name="[1a0]"></a>decrypt</STRONG> (Thumb, 650 bytes, Stack size 208 bytes, ff1.o(i.decrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 684<LI>Call Chain = decrypt &rArr; prf &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[1a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str_with_bignum
<LI><a href="#[1a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str
<LI><a href="#[194]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;release_str
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
<LI><a href="#[1a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_to_num_str
<LI><a href="#[1a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_to_num
<LI><a href="#[1a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_copy_of_range
<LI><a href="#[1a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_concatenate
<LI><a href="#[1a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod
<LI><a href="#[19d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;create_byte_str
<LI><a href="#[1a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_to_num
<LI><a href="#[195]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_copy_of_range
<LI><a href="#[192]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_concatenate
<LI><a href="#[19b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcd
<LI><a href="#[198]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcc
<LI><a href="#[196]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcb
</UL>
<BR>[Called By]<UL><LI><a href="#[1d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_decrypt
</UL>

<P><STRONG><a name="[d2]"></a>delay_report_outtime_cb_handler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, lock_timer.o(i.delay_report_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 676<LI>Call Chain = delay_report_outtime_cb_handler &rArr; delay_report_outtime_handler &rArr; lock_open_record_report &rArr; lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_report_outtime_handler
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[1aa]"></a>delay_report_outtime_handler</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, lock_dp_report.o(i.delay_report_outtime_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 668<LI>Call Chain = delay_report_outtime_handler &rArr; lock_open_record_report &rArr; lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report
<LI><a href="#[1ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_creat_sub_report
</UL>
<BR>[Called By]<UL><LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_report_outtime_cb_handler
</UL>

<P><STRONG><a name="[177]"></a>elog_hexdump</STRONG> (Thumb, 326 bytes, Stack size 56 bytes, elog.o(i.elog_hexdump))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = elog_hexdump &rArr; elog_port_output &rArr; uart2_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[1b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_strcpy
<LI><a href="#[1b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output
<LI><a href="#[1b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_unlock
<LI><a href="#[1ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_lock
<LI><a href="#[1b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strncpy
<LI><a href="#[1ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strstr
<LI><a href="#[1af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2snprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
</UL>

<P><STRONG><a name="[179]"></a>elog_init</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, elog.o(i.elog_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = elog_init &rArr; elog_set_filter_lvl &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_init
<LI><a href="#[1b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_set_filter_lvl
<LI><a href="#[1b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_lock_enabled
</UL>
<BR>[Called By]<UL><LI><a href="#[178]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_init
</UL>

<P><STRONG><a name="[c1]"></a>elog_output</STRONG> (Thumb, 664 bytes, Stack size 88 bytes, elog.o(i.elog_output))
<BR><BR>[Stack]<UL><LI>Max Depth = 144 + In Cycle
<LI>Call Chain = elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[1b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_strcpy
<LI><a href="#[1b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output
<LI><a href="#[1b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_get_time
<LI><a href="#[1ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_get_t_info
<LI><a href="#[1b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_get_p_info
<LI><a href="#[1b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_unlock
<LI><a href="#[1ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_lock
<LI><a href="#[1b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_fmt_enabled
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen
<LI><a href="#[1ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strstr
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
<LI><a href="#[1bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vsnprintf
<LI><a href="#[1af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2snprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[112]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_device_reset
<LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_stop
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_monitor_outtime_cb_handler
<LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
<LI><a href="#[1fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_set_T0
<LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
<LI><a href="#[1f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_modify_handler
<LI><a href="#[1f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_delete_handler
<LI><a href="#[1f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_creat_handler
<LI><a href="#[1f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_setkey_handler
<LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
<LI><a href="#[1ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_modify_handler
<LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler
<LI><a href="#[1eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_creat_handler
<LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_start
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[1f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_remote_anti_lock
<LI><a href="#[220]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_with_nopwd_remote
<LI><a href="#[1f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_with_bt
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
<LI><a href="#[106]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ota_rsp
<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
<LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_finished_and_disconnect_handler
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
<LI><a href="#[221]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_mode_exit
<LI><a href="#[21f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_get_T0
<LI><a href="#[21d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_find
<LI><a href="#[21b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_clear
<LI><a href="#[219]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_calculate_T2_T3
<LI><a href="#[1fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;verify_dynamic_pwd_token
<LI><a href="#[1e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_timer_string
<LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_init
<LI><a href="#[15f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_stop_advertising
<LI><a href="#[15e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_start_advertising
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;platform_reset
<LI><a href="#[1b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_strcpy
<LI><a href="#[17b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_start
<LI><a href="#[17a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_set_fmt
<LI><a href="#[1b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_set_filter_lvl
<LI><a href="#[1b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_fmt_enabled
<LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
<LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;assert_param
<LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;assert_err
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_mtu_changed_ind_handler
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_param_updated_ind_handler
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_param_update_req_ind_handler
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_le_pkt_size_ind_handler
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_disconnect_ind_handler
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_connection_req_ind_handler
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_cmp_evt_handler
</UL>

<P><STRONG><a name="[1ae]"></a>elog_output_lock</STRONG> (Thumb, 24 bytes, Stack size 16 bytes, elog.o(i.elog_output_lock))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = elog_output_lock &rArr; elog_port_output_lock &rArr; bk_enter_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[1bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output_lock
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>

<P><STRONG><a name="[1b5]"></a>elog_output_lock_enabled</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, elog.o(i.elog_output_lock_enabled))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = elog_output_lock_enabled &rArr; elog_port_output_unlock &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[1bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output_unlock
<LI><a href="#[1bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output_lock
</UL>
<BR>[Called By]<UL><LI><a href="#[179]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_init
</UL>

<P><STRONG><a name="[1b3]"></a>elog_output_unlock</STRONG> (Thumb, 24 bytes, Stack size 16 bytes, elog.o(i.elog_output_unlock))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = elog_output_unlock &rArr; elog_port_output_unlock &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[1bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output_unlock
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>

<P><STRONG><a name="[1b9]"></a>elog_port_get_p_info</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, elog_port.o(i.elog_port_get_p_info))
<BR><BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>

<P><STRONG><a name="[1ba]"></a>elog_port_get_t_info</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, elog_port.o(i.elog_port_get_t_info))
<BR><BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>

<P><STRONG><a name="[1b8]"></a>elog_port_get_time</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, elog_port.o(i.elog_port_get_time))
<BR><BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>

<P><STRONG><a name="[1b4]"></a>elog_port_init</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, elog_port.o(i.elog_port_init))
<BR><BR>[Called By]<UL><LI><a href="#[179]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_init
</UL>

<P><STRONG><a name="[1b2]"></a>elog_port_output</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, elog_port.o(i.elog_port_output))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = elog_port_output &rArr; uart2_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_printf
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>

<P><STRONG><a name="[1bc]"></a>elog_port_output_lock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, elog_port.o(i.elog_port_output_lock))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = elog_port_output_lock &rArr; bk_enter_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[16b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_enter_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[1b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_lock_enabled
<LI><a href="#[1ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_lock
</UL>

<P><STRONG><a name="[1bd]"></a>elog_port_output_unlock</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, elog_port.o(i.elog_port_output_unlock))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = elog_port_output_unlock &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[16e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_exit_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[1b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_unlock
<LI><a href="#[1b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output_lock_enabled
</UL>

<P><STRONG><a name="[1b6]"></a>elog_set_filter_lvl</STRONG> (Thumb, 60 bytes, Stack size 32 bytes, elog.o(i.elog_set_filter_lvl))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = elog_set_filter_lvl &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[179]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_init
</UL>

<P><STRONG><a name="[17a]"></a>elog_set_fmt</STRONG> (Thumb, 72 bytes, Stack size 32 bytes, elog.o(i.elog_set_fmt))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = elog_set_fmt &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[178]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_init
</UL>

<P><STRONG><a name="[17b]"></a>elog_start</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, elog.o(i.elog_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = elog_start &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[178]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_init
</UL>

<P><STRONG><a name="[1b1]"></a>elog_strcpy</STRONG> (Thumb, 150 bytes, Stack size 40 bytes, elog_utils.o(i.elog_strcpy))
<BR><BR>[Stack]<UL><LI>Max Depth = 40 + In Cycle
<LI>Call Chain = elog_strcpy &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[177]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_hexdump
</UL>

<P><STRONG><a name="[255]"></a>emi_init</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, emi.o(i.emi_init))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[11a]"></a>factory_test_process</STRONG> (Thumb, 132 bytes, Stack size 16 bytes, app_test.o(i.factory_test_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 1056<LI>Call Chain = factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[148]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_pre_process
<LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
</UL>
<BR>[Called By]<UL><LI><a href="#[119]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_factory_test_process
</UL>

<P><STRONG><a name="[1c3]"></a>fff0s_get_att_handle</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, fff0s.o(i.fff0s_get_att_handle))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = fff0s_get_att_handle &rArr; prf_env_get
</UL>
<BR>[Calls]<UL><LI><a href="#[1c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_env_get
</UL>
<BR>[Called By]<UL><LI><a href="#[1c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_notify_fff1_lvl
</UL>

<P><STRONG><a name="[1c4]"></a>fff0s_get_att_idx</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, fff0s.o(i.fff0s_get_att_idx))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = fff0s_get_att_idx &rArr; prf_env_get
</UL>
<BR>[Calls]<UL><LI><a href="#[1c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_env_get
</UL>
<BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_write_req_ind_handler
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_read_req_ind_handler
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_att_info_req_ind_handler
</UL>

<P><STRONG><a name="[1c2]"></a>fff0s_notify_fff1_lvl</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, fff0s.o(i.fff0s_notify_fff1_lvl))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = fff0s_notify_fff1_lvl &rArr; fff0s_get_att_handle &rArr; prf_env_get
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[1c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_get_att_handle
<LI><a href="#[1c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_src_task_get
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_fff1_level_upd_req_handler
</UL>

<P><STRONG><a name="[245]"></a>fff0s_prf_itf_get</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, fff0s.o(i.fff0s_prf_itf_get))
<BR><BR>[Called By]<UL><LI><a href="#[243]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_itf_get
</UL>

<P><STRONG><a name="[1c8]"></a>flash_advance_init</STRONG> (Thumb, 104 bytes, Stack size 4 bytes, flash.o(i.flash_advance_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = flash_advance_init &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[1c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_flash_ID
<LI><a href="#[1cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_sr
<LI><a href="#[1ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read_sr
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[35]"></a>flash_erase</STRONG> (Thumb, 180 bytes, Stack size 40 bytes, flash.o(i.flash_erase))
<BR><BR>[Stack]<UL><LI>Max Depth = 228<LI>Call Chain = flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[1cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_previous_sector
<LI><a href="#[1cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_next_sector
<LI><a href="#[1c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_flash_ID
<LI><a href="#[1ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase_sector
</UL>
<BR>[Called By]<UL><LI><a href="#[171]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_erase
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rw_main)
</UL>
<P><STRONG><a name="[1ce]"></a>flash_erase_sector</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, flash.o(i.flash_erase_sector))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = flash_erase_sector &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[1cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_wp_NONE
<LI><a href="#[1d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_wp_ALL
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase
<LI><a href="#[1cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_previous_sector
<LI><a href="#[1cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_next_sector
</UL>

<P><STRONG><a name="[1d1]"></a>flash_init</STRONG> (Thumb, 34 bytes, Stack size 4 bytes, flash.o(i.flash_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = flash_init &rArr; flash_set_dual_mode
</UL>
<BR>[Calls]<UL><LI><a href="#[1d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;set_flash_clk
<LI><a href="#[1c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_flash_ID
<LI><a href="#[1d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_set_dual_mode
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[33]"></a>flash_read</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, flash.o(i.flash_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[1d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read_data
</UL>
<BR>[Called By]<UL><LI><a href="#[173]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_read
<LI><a href="#[1cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_previous_sector
<LI><a href="#[1cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_next_sector
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rw_main)
</UL>
<P><STRONG><a name="[1d4]"></a>flash_read_data</STRONG> (Thumb, 134 bytes, Stack size 72 bytes, flash.o(i.flash_read_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read
</UL>

<P><STRONG><a name="[1ca]"></a>flash_read_sr</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, flash.o(i.flash_read_sr))
<BR><BR>[Called By]<UL><LI><a href="#[1c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_advance_init
</UL>

<P><STRONG><a name="[1d2]"></a>flash_set_dual_mode</STRONG> (Thumb, 32 bytes, Stack size 4 bytes, flash.o(i.flash_set_dual_mode))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = flash_set_dual_mode
</UL>
<BR>[Calls]<UL><LI><a href="#[1d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;clr_flash_qwfr
</UL>
<BR>[Called By]<UL><LI><a href="#[1d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_init
</UL>

<P><STRONG><a name="[1d0]"></a>flash_wp_ALL</STRONG> (Thumb, 76 bytes, Stack size 4 bytes, flash.o(i.flash_wp_ALL))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = flash_wp_ALL &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[1cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_sr
</UL>
<BR>[Called By]<UL><LI><a href="#[1d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_data
<LI><a href="#[1ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase_sector
</UL>

<P><STRONG><a name="[1cf]"></a>flash_wp_NONE</STRONG> (Thumb, 72 bytes, Stack size 4 bytes, flash.o(i.flash_wp_NONE))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[1cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_sr
</UL>
<BR>[Called By]<UL><LI><a href="#[1d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_data
<LI><a href="#[1ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase_sector
</UL>

<P><STRONG><a name="[34]"></a>flash_write</STRONG> (Thumb, 102 bytes, Stack size 40 bytes, flash.o(i.flash_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 132<LI>Call Chain = flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_printf
<LI><a href="#[1c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_flash_ID
<LI><a href="#[1d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_data
</UL>
<BR>[Called By]<UL><LI><a href="#[174]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_write
<LI><a href="#[1cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_previous_sector
<LI><a href="#[1cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;udi_exchange_fdata_to_adjoining_next_sector
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rw_main)
</UL>
<P><STRONG><a name="[1d6]"></a>flash_write_data</STRONG> (Thumb, 206 bytes, Stack size 72 bytes, flash.o(i.flash_write_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[1cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_wp_NONE
<LI><a href="#[1d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_wp_ALL
</UL>
<BR>[Called By]<UL><LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
</UL>

<P><STRONG><a name="[1cb]"></a>flash_write_sr</STRONG> (Thumb, 168 bytes, Stack size 16 bytes, flash.o(i.flash_write_sr))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[1c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_flash_ID
</UL>
<BR>[Called By]<UL><LI><a href="#[1c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_advance_init
<LI><a href="#[1cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_wp_NONE
<LI><a href="#[1d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_wp_ALL
</UL>

<P><STRONG><a name="[1d7]"></a>fpe_decrypt</STRONG> (Thumb, 106 bytes, Stack size 56 bytes, fpe_decrypt.o(i.fpe_decrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 740<LI>Call Chain = fpe_decrypt &rArr; decrypt &rArr; prf &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[194]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;release_str
<LI><a href="#[19d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;create_byte_str
<LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>
<BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
</UL>

<P><STRONG><a name="[199]"></a>fpe_int_pow</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fpe_math.o(i.fpe_int_pow))
<BR><BR>[Called By]<UL><LI><a href="#[19a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod_pow_radix
<LI><a href="#[198]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcc
</UL>

<P><STRONG><a name="[1a3]"></a>fpe_mod</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, fpe_math.o(i.fpe_mod))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = fpe_mod
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[1d8]"></a>fpe_mod_pow</STRONG> (Thumb, 32 bytes, Stack size 24 bytes, fpe_math.o(i.fpe_mod_pow))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = fpe_mod_pow
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[19a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod_pow_radix
</UL>

<P><STRONG><a name="[19a]"></a>fpe_mod_pow_radix</STRONG> (Thumb, 86 bytes, Stack size 40 bytes, fpe_math.o(i.fpe_mod_pow_radix))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = fpe_mod_pow_radix &rArr; fpe_mod_pow
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[1d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_mod_pow
<LI><a href="#[199]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_int_pow
</UL>
<BR>[Called By]<UL><LI><a href="#[198]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calcc
</UL>

<P><STRONG><a name="[19f]"></a>free_klv_list</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, tuya_ble_mutli_tsf_protocol.o(i.free_klv_list))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = free_klv_list &rArr; tuya_ble_free &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
</UL>
<BR>[Called By]<UL><LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[19e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;data_2_klvlist
</UL>

<P><STRONG><a name="[1c9]"></a>get_flash_ID</STRONG> (Thumb, 34 bytes, Stack size 0 bytes, flash.o(i.get_flash_ID))
<BR><BR>[Called By]<UL><LI><a href="#[1d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_init
<LI><a href="#[1c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_advance_init
<LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase
<LI><a href="#[1cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write_sr
</UL>

<P><STRONG><a name="[191]"></a>get_trsmitr_subpkg</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, tuya_ble_mutli_tsf_protocol.o(i.get_trsmitr_subpkg))
<BR><BR>[Called By]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[18e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ble_data_unpack
</UL>

<P><STRONG><a name="[190]"></a>get_trsmitr_subpkg_len</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, tuya_ble_mutli_tsf_protocol.o(i.get_trsmitr_subpkg_len))
<BR><BR>[Called By]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[18e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ble_data_unpack
</UL>

<P><STRONG><a name="[a4]"></a>gpio_isr</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, gpio.o(i.gpio_isr))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = gpio_isr
</UL>
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Exception
</UL>

<P><STRONG><a name="[24e]"></a>icu_get_sleep_mode</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, icu.o(i.icu_get_sleep_mode))
<BR><BR>[Called By]<UL><LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[1e1]"></a>icu_init</STRONG> (Thumb, 82 bytes, Stack size 4 bytes, icu.o(i.icu_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = icu_init &rArr; switch_clk
</UL>
<BR>[Calls]<UL><LI><a href="#[19c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;switch_clk
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[1e2]"></a>init_analog_xvr_reg</STRONG> (Thumb, 184 bytes, Stack size 4 bytes, rf_xvr.o(i.init_analog_xvr_reg))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = init_analog_xvr_reg &rArr; Delay_ms
</UL>
<BR>[Calls]<UL><LI><a href="#[169]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_ms
</UL>
<BR>[Called By]<UL><LI><a href="#[1e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initial_xver_BK3435V2_openLoop
</UL>

<P><STRONG><a name="[1e3]"></a>initial_xver_BK3435V2_openLoop</STRONG> (Thumb, 260 bytes, Stack size 8 bytes, rf_xvr.o(i.initial_xver_BK3435V2_openLoop))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = initial_xver_BK3435V2_openLoop &rArr; kmod_calibration &rArr; Delay_ms
</UL>
<BR>[Calls]<UL><LI><a href="#[169]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_ms
<LI><a href="#[1e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kmod_calibration
<LI><a href="#[1e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;init_analog_xvr_reg
</UL>
<BR>[Called By]<UL><LI><a href="#[248]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rf_init
</UL>

<P><STRONG><a name="[258]"></a>intc_init</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, intc.o(i.intc_init))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[1e4]"></a>kmod_calibration</STRONG> (Thumb, 280 bytes, Stack size 24 bytes, rf_xvr.o(i.kmod_calibration))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = kmod_calibration &rArr; Delay_ms
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[169]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_ms
</UL>
<BR>[Called By]<UL><LI><a href="#[1e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initial_xver_BK3435V2_openLoop
</UL>

<P><STRONG><a name="[1e7]"></a>lock_alarm_record_report</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, lock_dp_report.o(i.lock_alarm_record_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 652<LI>Call Chain = lock_alarm_record_report &rArr; lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[1dc]"></a>lock_common_init</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, lock_common.o(i.lock_common_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 620<LI>Call Chain = lock_common_init &rArr; app_common_init &rArr; app_port_ble_sdk_init &rArr; tuya_ble_sdk_init &rArr; tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[1ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_creat
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[12b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_init
<LI><a href="#[123]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_local_clock_start
<LI><a href="#[1e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_init
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_init
</UL>
<BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_cmp_evt_handler
</UL>

<P><STRONG><a name="[e3]"></a>lock_dp_parser_handler</STRONG> (Thumb, 1828 bytes, Stack size 32 bytes, lock_dp_parser.o(i.lock_dp_parser_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 468<LI>Call Chain = lock_dp_parser_handler &rArr; open_meth_modify_handler &rArr; lock_hard_modify_all_by_memberid &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_save
<LI><a href="#[1f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_with_delay
<LI><a href="#[1fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_set_T0
<LI><a href="#[13a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_string_op_intstr2int
<LI><a href="#[1ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;user_freeze_or_unfreeze_handler
<LI><a href="#[1f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_modify_handler
<LI><a href="#[1f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_delete_handler
<LI><a href="#[1f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_creat_handler
<LI><a href="#[1f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_setkey_handler
<LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
<LI><a href="#[1f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_sync_new_handler
<LI><a href="#[1f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_sync_handler
<LI><a href="#[1ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_modify_handler
<LI><a href="#[1ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_freeze_or_unfreeze_handler
<LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler
<LI><a href="#[1eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_creat_handler
<LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[1f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_remote_anti_lock
<LI><a href="#[1f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_with_bt
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
</UL>

<P><STRONG><a name="[1fc]"></a>lock_dynamic_pwd_verify</STRONG> (Thumb, 26 bytes, Stack size 16 bytes, lock_dynamic_pwd.o(i.lock_dynamic_pwd_verify))
<BR><BR>[Stack]<UL><LI>Max Depth = 936<LI>Call Chain = lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[1fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;verify_dynamic_pwd_token
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[1fe]"></a>lock_evt_delete</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, app_flash.o(i.lock_evt_delete))
<BR><BR>[Stack]<UL><LI>Max Depth = 252<LI>Call Chain = lock_evt_delete &rArr; app_port_nv_del &rArr; sf_nv_delete &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_del
</UL>
<BR>[Called By]<UL><LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
</UL>

<P><STRONG><a name="[1ff]"></a>lock_evt_load</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, app_flash.o(i.lock_evt_load))
<BR><BR>[Stack]<UL><LI>Max Depth = 248<LI>Call Chain = lock_evt_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
</UL>
<BR>[Called By]<UL><LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
</UL>

<P><STRONG><a name="[1e8]"></a>lock_evt_save</STRONG> (Thumb, 124 bytes, Stack size 296 bytes, app_flash.o(i.lock_evt_save))
<BR><BR>[Stack]<UL><LI>Max Depth = 636<LI>Call Chain = lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[200]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evtid_save
<LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[11e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_connect_status
</UL>
<BR>[Called By]<UL><LI><a href="#[217]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_offline_pwd
<LI><a href="#[1ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report
<LI><a href="#[215]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_combine_report
<LI><a href="#[1e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_alarm_record_report
</UL>

<P><STRONG><a name="[201]"></a>lock_evtid_load</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, app_flash.o(i.lock_evtid_load))
<BR><BR>[Stack]<UL><LI>Max Depth = 248<LI>Call Chain = lock_evtid_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
</UL>
<BR>[Called By]<UL><LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_flash_init
</UL>

<P><STRONG><a name="[200]"></a>lock_evtid_save</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, app_flash.o(i.lock_evtid_save))
<BR><BR>[Stack]<UL><LI>Max Depth = 340<LI>Call Chain = lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
</UL>
<BR>[Called By]<UL><LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
</UL>

<P><STRONG><a name="[e7]"></a>lock_factory_handler</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, lock_common.o(i.lock_factory_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 276<LI>Call Chain = lock_factory_handler &rArr; lock_flash_erease_all &rArr; app_port_nv_set_default &rArr; sf_port_flash_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[202]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_flash_erease_all
<LI><a href="#[142]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_tuya_ble_device_factory_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
</UL>

<P><STRONG><a name="[202]"></a>lock_flash_erease_all</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, app_flash.o(i.lock_flash_erease_all))
<BR><BR>[Stack]<UL><LI>Max Depth = 268<LI>Call Chain = lock_flash_erease_all &rArr; app_port_nv_set_default &rArr; sf_port_flash_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[12f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set_default
</UL>
<BR>[Called By]<UL><LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_factory_handler
</UL>

<P><STRONG><a name="[df]"></a>lock_flash_init</STRONG> (Thumb, 86 bytes, Stack size 56 bytes, app_flash.o(i.lock_flash_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 412<LI>Call Chain = lock_flash_init &rArr; lock_settings_default &rArr; lock_settings_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[201]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evtid_load
<LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[204]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_load
<LI><a href="#[205]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_default
</UL>
<BR>[Called By]<UL><LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_init
</UL>

<P><STRONG><a name="[213]"></a>lock_get_hardid</STRONG> (Thumb, 52 bytes, Stack size 20 bytes, app_flash.o(i.lock_get_hardid))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = lock_get_hardid
</UL>
<BR>[Called By]<UL><LI><a href="#[1f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_creat_handler
<LI><a href="#[1eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_creat_handler
<LI><a href="#[212]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save_in_local_flash
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[1ac]"></a>lock_hard_creat_sub_report</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, lock_dp_report.o(i.lock_hard_creat_sub_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = lock_hard_creat_sub_report &rArr; app_port_dp_data_report &rArr; tuya_ble_dp_data_report &rArr; data_2_klvlist &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
</UL>
<BR>[Called By]<UL><LI><a href="#[1aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_report_outtime_handler
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[206]"></a>lock_hard_creat_sub_report_with_delay</STRONG> (Thumb, 30 bytes, Stack size 16 bytes, lock_dp_report.o(i.lock_hard_creat_sub_report_with_delay))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = lock_hard_creat_sub_report_with_delay &rArr; lock_timer_start &rArr; app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[1eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_creat_handler
</UL>

<P><STRONG><a name="[207]"></a>lock_hard_delete</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, app_flash.o(i.lock_hard_delete))
<BR><BR>[Stack]<UL><LI>Max Depth = 252<LI>Call Chain = lock_hard_delete &rArr; app_port_nv_del &rArr; sf_nv_delete &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_del
</UL>
<BR>[Called By]<UL><LI><a href="#[208]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete_all_by_memberid
<LI><a href="#[1f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_delete_handler
<LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler
</UL>

<P><STRONG><a name="[208]"></a>lock_hard_delete_all_by_memberid</STRONG> (Thumb, 106 bytes, Stack size 24 bytes, app_flash.o(i.lock_hard_delete_all_by_memberid))
<BR><BR>[Stack]<UL><LI>Max Depth = 360<LI>Call Chain = lock_hard_delete_all_by_memberid &rArr; lock_hardid_load_by_memberid &rArr; lock_hard_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[207]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete
<LI><a href="#[20b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_finger_delete
<LI><a href="#[20c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_face_delete
<LI><a href="#[20a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_doorcard_delete
<LI><a href="#[209]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hardid_load_by_memberid
</UL>
<BR>[Called By]<UL><LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler
</UL>

<P><STRONG><a name="[cb]"></a>lock_hard_doorcard_cancel_reg</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_doorcard_cancel_reg))
<BR><BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[20a]"></a>lock_hard_doorcard_delete</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_doorcard_delete))
<BR><BR>[Called By]<UL><LI><a href="#[208]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete_all_by_memberid
<LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler
</UL>

<P><STRONG><a name="[ca]"></a>lock_hard_doorcard_start_reg</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_doorcard_start_reg))
<BR><BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[cf]"></a>lock_hard_face_cancel_reg</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_face_cancel_reg))
<BR><BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[20c]"></a>lock_hard_face_delete</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_face_delete))
<BR><BR>[Called By]<UL><LI><a href="#[208]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete_all_by_memberid
<LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler
</UL>

<P><STRONG><a name="[ce]"></a>lock_hard_face_start_reg</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_face_start_reg))
<BR><BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[cd]"></a>lock_hard_finger_cancel_reg</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_finger_cancel_reg))
<BR><BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[20b]"></a>lock_hard_finger_delete</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_finger_delete))
<BR><BR>[Called By]<UL><LI><a href="#[208]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete_all_by_memberid
<LI><a href="#[1ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_delete_handler
</UL>

<P><STRONG><a name="[cc]"></a>lock_hard_finger_start_reg</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, lock_hard.o(i.lock_hard_finger_start_reg))
<BR><BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[20d]"></a>lock_hard_freezeorunfreeze</STRONG> (Thumb, 30 bytes, Stack size 48 bytes, app_flash.o(i.lock_hard_freezeorunfreeze))
<BR><BR>[Stack]<UL><LI>Max Depth = 388<LI>Call Chain = lock_hard_freezeorunfreeze &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[20e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save
</UL>
<BR>[Called By]<UL><LI><a href="#[1ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_freeze_or_unfreeze_handler
</UL>

<P><STRONG><a name="[20f]"></a>lock_hard_freezeorunfreeze_all_by_memberid</STRONG> (Thumb, 72 bytes, Stack size 64 bytes, app_flash.o(i.lock_hard_freezeorunfreeze_all_by_memberid))
<BR><BR>[Stack]<UL><LI>Max Depth = 404<LI>Call Chain = lock_hard_freezeorunfreeze_all_by_memberid &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[209]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hardid_load_by_memberid
<LI><a href="#[20e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save
</UL>
<BR>[Called By]<UL><LI><a href="#[1ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;user_freeze_or_unfreeze_handler
</UL>

<P><STRONG><a name="[203]"></a>lock_hard_load</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, app_flash.o(i.lock_hard_load))
<BR><BR>[Stack]<UL><LI>Max Depth = 248<LI>Call Chain = lock_hard_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
</UL>
<BR>[Called By]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_meth_sync_new_report
<LI><a href="#[211]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_in_local_flash
<LI><a href="#[210]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_all_by_memberid
<LI><a href="#[20f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_freezeorunfreeze_all_by_memberid
<LI><a href="#[20d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_freezeorunfreeze
<LI><a href="#[1f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_sync_handler
<LI><a href="#[209]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hardid_load_by_memberid
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_flash_init
</UL>

<P><STRONG><a name="[210]"></a>lock_hard_modify_all_by_memberid</STRONG> (Thumb, 78 bytes, Stack size 72 bytes, app_flash.o(i.lock_hard_modify_all_by_memberid))
<BR><BR>[Stack]<UL><LI>Max Depth = 412<LI>Call Chain = lock_hard_modify_all_by_memberid &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[209]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hardid_load_by_memberid
<LI><a href="#[20e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save
</UL>
<BR>[Called By]<UL><LI><a href="#[1ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_modify_handler
</UL>

<P><STRONG><a name="[211]"></a>lock_hard_modify_in_local_flash</STRONG> (Thumb, 144 bytes, Stack size 56 bytes, app_flash.o(i.lock_hard_modify_in_local_flash))
<BR><BR>[Stack]<UL><LI>Max Depth = 396<LI>Call Chain = lock_hard_modify_in_local_flash &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[20e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save
</UL>
<BR>[Called By]<UL><LI><a href="#[1f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_modify_handler
<LI><a href="#[1ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_modify_handler
</UL>

<P><STRONG><a name="[20e]"></a>lock_hard_save</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, app_flash.o(i.lock_hard_save))
<BR><BR>[Stack]<UL><LI>Max Depth = 340<LI>Call Chain = lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
</UL>
<BR>[Called By]<UL><LI><a href="#[211]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_in_local_flash
<LI><a href="#[210]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_all_by_memberid
<LI><a href="#[20f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_freezeorunfreeze_all_by_memberid
<LI><a href="#[20d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_freezeorunfreeze
<LI><a href="#[212]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save_in_local_flash
</UL>

<P><STRONG><a name="[212]"></a>lock_hard_save_in_local_flash</STRONG> (Thumb, 160 bytes, Stack size 64 bytes, app_flash.o(i.lock_hard_save_in_local_flash))
<BR><BR>[Stack]<UL><LI>Max Depth = 404<LI>Call Chain = lock_hard_save_in_local_flash &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[213]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_get_hardid
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[20e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[1f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;temp_pw_creat_handler
<LI><a href="#[1eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_creat_handler
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[1bf]"></a>lock_hard_uart_simulate</STRONG> (Thumb, 1616 bytes, Stack size 104 bytes, lock_hard.o(i.lock_hard_uart_simulate))
<BR><BR>[Stack]<UL><LI>Max Depth = 1040<LI>Call Chain = lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
<LI><a href="#[214]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_state_sync_report
<LI><a href="#[217]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_offline_pwd
<LI><a href="#[1ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report
<LI><a href="#[215]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_combine_report
<LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
<LI><a href="#[212]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save_in_local_flash
<LI><a href="#[1ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_creat_sub_report
<LI><a href="#[213]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_get_hardid
<LI><a href="#[1fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dynamic_pwd_verify
<LI><a href="#[1e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_alarm_record_report
<LI><a href="#[12f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set_default
<LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
<LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
<LI><a href="#[107]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_aes128_cbc_encrypt
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_start
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_finished_and_disconnect
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_factory_handler
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<BR>[Called By]<UL><LI><a href="#[11a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;factory_test_process
</UL>

<P><STRONG><a name="[209]"></a>lock_hardid_load_by_memberid</STRONG> (Thumb, 100 bytes, Stack size 88 bytes, app_flash.o(i.lock_hardid_load_by_memberid))
<BR><BR>[Stack]<UL><LI>Max Depth = 336<LI>Call Chain = lock_hardid_load_by_memberid &rArr; lock_hard_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
</UL>
<BR>[Called By]<UL><LI><a href="#[210]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_all_by_memberid
<LI><a href="#[20f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_freezeorunfreeze_all_by_memberid
<LI><a href="#[208]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete_all_by_memberid
</UL>

<P><STRONG><a name="[218]"></a>lock_last_evtid</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, app_flash.o(i.lock_last_evtid))
<BR><BR>[Called By]<UL><LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
</UL>

<P><STRONG><a name="[e5]"></a>lock_offline_evt_report</STRONG> (Thumb, 142 bytes, Stack size 32 bytes, lock_dp_report.o(i.lock_offline_evt_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 372<LI>Call Chain = lock_offline_evt_report &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[218]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_last_evtid
<LI><a href="#[200]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evtid_save
<LI><a href="#[201]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evtid_load
<LI><a href="#[1ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_load
<LI><a href="#[1fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_delete
<LI><a href="#[11f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_old_timestamp
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bonding_conn_outtime_cb_handler
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
</UL>

<P><STRONG><a name="[21f]"></a>lock_offline_pwd_get_T0</STRONG> (Thumb, 52 bytes, Stack size 24 bytes, lock_offline_pwd.o(i.lock_offline_pwd_get_T0))
<BR><BR>[Stack]<UL><LI>Max Depth = 264<LI>Call Chain = lock_offline_pwd_get_T0 &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[1fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_set_T0
<LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
</UL>

<P><STRONG><a name="[1fb]"></a>lock_offline_pwd_set_T0</STRONG> (Thumb, 82 bytes, Stack size 24 bytes, lock_offline_pwd.o(i.lock_offline_pwd_set_T0))
<BR><BR>[Stack]<UL><LI>Max Depth = 356<LI>Call Chain = lock_offline_pwd_set_T0 &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[21f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_get_T0
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[216]"></a>lock_offline_pwd_verify</STRONG> (Thumb, 900 bytes, Stack size 72 bytes, lock_offline_pwd.o(i.lock_offline_pwd_verify))
<BR><BR>[Stack]<UL><LI>Max Depth = 812<LI>Call Chain = lock_offline_pwd_verify &rArr; fpe_decrypt &rArr; decrypt &rArr; prf &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump
<LI><a href="#[1d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_decrypt
<LI><a href="#[126]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_num_array_2_int
<LI><a href="#[21f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_get_T0
<LI><a href="#[21c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_save
<LI><a href="#[21d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_find
<LI><a href="#[21b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_clear
<LI><a href="#[219]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_calculate_T2_T3
<LI><a href="#[1e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;is_offline_pwd_exist
<LI><a href="#[fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uwrite4
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[e4]"></a>lock_open_meth_sync_new_report</STRONG> (Thumb, 334 bytes, Stack size 64 bytes, lock_dp_report.o(i.lock_open_meth_sync_new_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 312<LI>Call Chain = lock_open_meth_sync_new_report &rArr; lock_hard_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[1f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_meth_sync_new_handler
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
</UL>

<P><STRONG><a name="[215]"></a>lock_open_record_combine_report</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, lock_dp_report.o(i.lock_open_record_combine_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 652<LI>Call Chain = lock_open_record_combine_report &rArr; lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[1ab]"></a>lock_open_record_report</STRONG> (Thumb, 80 bytes, Stack size 24 bytes, lock_dp_report.o(i.lock_open_record_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 660<LI>Call Chain = lock_open_record_report &rArr; lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
</UL>
<BR>[Called By]<UL><LI><a href="#[1aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_report_outtime_handler
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[217]"></a>lock_open_record_report_offline_pwd</STRONG> (Thumb, 58 bytes, Stack size 24 bytes, lock_dp_report.o(i.lock_open_record_report_offline_pwd))
<BR><BR>[Stack]<UL><LI>Max Depth = 660<LI>Call Chain = lock_open_record_report_offline_pwd &rArr; lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_evt_save
<LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[1f3]"></a>lock_open_record_report_with_delay</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, lock_dp_report.o(i.lock_open_record_report_with_delay))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = lock_open_record_report_with_delay &rArr; lock_timer_start &rArr; app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
<LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
</UL>

<P><STRONG><a name="[1f2]"></a>lock_open_with_bt</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, lock_common.o(i.lock_open_with_bt))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = lock_open_with_bt &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[220]"></a>lock_open_with_nopwd_remote</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, lock_common.o(i.lock_open_with_nopwd_remote))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = lock_open_with_nopwd_remote &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[1fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;open_with_nopwd_remote_handler
</UL>

<P><STRONG><a name="[1f4]"></a>lock_remote_anti_lock</STRONG> (Thumb, 36 bytes, Stack size 16 bytes, lock_common.o(i.lock_remote_anti_lock))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = lock_remote_anti_lock &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[205]"></a>lock_settings_default</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, app_flash.o(i.lock_settings_default))
<BR><BR>[Stack]<UL><LI>Max Depth = 356<LI>Call Chain = lock_settings_default &rArr; lock_settings_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[1f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_save
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_flash_init
</UL>

<P><STRONG><a name="[204]"></a>lock_settings_load</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, app_flash.o(i.lock_settings_load))
<BR><BR>[Stack]<UL><LI>Max Depth = 248<LI>Call Chain = lock_settings_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
</UL>
<BR>[Called By]<UL><LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_flash_init
</UL>

<P><STRONG><a name="[1f5]"></a>lock_settings_save</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, app_flash.o(i.lock_settings_save))
<BR><BR>[Stack]<UL><LI>Max Depth = 340<LI>Call Chain = lock_settings_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
<LI><a href="#[205]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_settings_default
</UL>

<P><STRONG><a name="[214]"></a>lock_state_sync_report</STRONG> (Thumb, 126 bytes, Stack size 16 bytes, lock_dp_report.o(i.lock_state_sync_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = lock_state_sync_report &rArr; app_port_dp_data_report &rArr; tuya_ble_dp_data_report &rArr; data_2_klvlist &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
</UL>
<BR>[Called By]<UL><LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
</UL>

<P><STRONG><a name="[1be]"></a>lock_test_process</STRONG> (Thumb, 444 bytes, Stack size 160 bytes, lock_test.o(i.lock_test_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 836<LI>Call Chain = lock_test_process &rArr; lock_test_rsp &rArr; tuya_ble_lock_test_rsp &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[136]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_string_op_hex2hexstr
<LI><a href="#[11e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_connect_status
<LI><a href="#[11c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_bt_mac_addr
<LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[222]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_rsp
<LI><a href="#[221]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_mode_exit
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2sprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[11a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;factory_test_process
</UL>

<P><STRONG><a name="[1ea]"></a>lock_timer_creat</STRONG> (Thumb, 154 bytes, Stack size 24 bytes, lock_timer.o(i.lock_timer_creat))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = lock_timer_creat &rArr; app_port_timer_create &rArr; tuya_ble_timer_create &rArr; bk_timer_create
</UL>
<BR>[Calls]<UL><LI><a href="#[13c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_timer_create
</UL>
<BR>[Called By]<UL><LI><a href="#[1dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_common_init
</UL>

<P><STRONG><a name="[c7]"></a>lock_timer_start</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, lock_timer.o(i.lock_timer_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = lock_timer_start &rArr; app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[13e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_with_disconn_outtime_cb_handler
<LI><a href="#[1f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_with_delay
<LI><a href="#[206]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_creat_sub_report_with_delay
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_start
<LI><a href="#[1bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_uart_simulate
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
<LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_exit
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_init
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
<LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[c8]"></a>lock_timer_stop</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, lock_timer.o(i.lock_timer_stop))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = lock_timer_stop &rArr; app_port_timer_stop &rArr; tuya_ble_timer_stop &rArr; bk_timer_stop &rArr; bk_timer_stop_0
</UL>
<BR>[Calls]<UL><LI><a href="#[140]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_timer_stop
</UL>
<BR>[Called By]<UL><LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_stop
<LI><a href="#[b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_tuya_ble_sdk_callback
<LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[224]"></a>mbedtls_aes_crypt_cbc</STRONG> (Thumb, 144 bytes, Stack size 56 bytes, aes.o(i.mbedtls_aes_crypt_cbc))
<BR><BR>[Stack]<UL><LI>Max Depth = 132<LI>Call Chain = mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[225]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_ecb
</UL>
<BR>[Called By]<UL><LI><a href="#[298]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_decrypt
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
</UL>

<P><STRONG><a name="[225]"></a>mbedtls_aes_crypt_ecb</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, aes.o(i.mbedtls_aes_crypt_ecb))
<BR><BR>[Stack]<UL><LI>Max Depth = 76<LI>Call Chain = mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[227]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_internal_aes_encrypt
<LI><a href="#[226]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_internal_aes_decrypt
</UL>
<BR>[Called By]<UL><LI><a href="#[224]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_cbc
<LI><a href="#[299]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_ecb_encrypt
</UL>

<P><STRONG><a name="[228]"></a>mbedtls_aes_free</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, aes.o(i.mbedtls_aes_free))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = mbedtls_aes_free
</UL>
<BR>[Calls]<UL><LI><a href="#[229]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_platform_zeroize
</UL>
<BR>[Called By]<UL><LI><a href="#[22b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_dec
<LI><a href="#[299]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_ecb_encrypt
<LI><a href="#[298]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_decrypt
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
</UL>

<P><STRONG><a name="[22a]"></a>mbedtls_aes_init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, aes.o(i.mbedtls_aes_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = mbedtls_aes_init
</UL>
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[22b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_dec
<LI><a href="#[299]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_ecb_encrypt
<LI><a href="#[298]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_decrypt
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
</UL>

<P><STRONG><a name="[22b]"></a>mbedtls_aes_setkey_dec</STRONG> (Thumb, 186 bytes, Stack size 304 bytes, aes.o(i.mbedtls_aes_setkey_dec))
<BR><BR>[Stack]<UL><LI>Max Depth = 324<LI>Call Chain = mbedtls_aes_setkey_dec &rArr; mbedtls_aes_setkey_enc
</UL>
<BR>[Calls]<UL><LI><a href="#[22c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_enc
<LI><a href="#[22a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_init
<LI><a href="#[228]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_free
</UL>
<BR>[Called By]<UL><LI><a href="#[298]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_decrypt
</UL>

<P><STRONG><a name="[22c]"></a>mbedtls_aes_setkey_enc</STRONG> (Thumb, 404 bytes, Stack size 20 bytes, aes.o(i.mbedtls_aes_setkey_enc))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = mbedtls_aes_setkey_enc
</UL>
<BR>[Called By]<UL><LI><a href="#[22b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_dec
<LI><a href="#[299]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_ecb_encrypt
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
</UL>

<P><STRONG><a name="[226]"></a>mbedtls_internal_aes_decrypt</STRONG> (Thumb, 1010 bytes, Stack size 68 bytes, aes.o(i.mbedtls_internal_aes_decrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = mbedtls_internal_aes_decrypt
</UL>
<BR>[Called By]<UL><LI><a href="#[225]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_ecb
</UL>

<P><STRONG><a name="[227]"></a>mbedtls_internal_aes_encrypt</STRONG> (Thumb, 1014 bytes, Stack size 68 bytes, aes.o(i.mbedtls_internal_aes_encrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = mbedtls_internal_aes_encrypt
</UL>
<BR>[Called By]<UL><LI><a href="#[225]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_ecb
</UL>

<P><STRONG><a name="[22f]"></a>mbedtls_internal_md5_process</STRONG> (Thumb, 2040 bytes, Stack size 116 bytes, md5.o(i.mbedtls_internal_md5_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 116<LI>Call Chain = mbedtls_internal_md5_process
</UL>
<BR>[Called By]<UL><LI><a href="#[235]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_update_ret
<LI><a href="#[22e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_finish_ret
</UL>

<P><STRONG><a name="[22d]"></a>mbedtls_md5_finish</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, md5.o(i.mbedtls_md5_finish))
<BR><BR>[Stack]<UL><LI>Max Depth = 140<LI>Call Chain = mbedtls_md5_finish &rArr; mbedtls_md5_finish_ret &rArr; mbedtls_internal_md5_process
</UL>
<BR>[Calls]<UL><LI><a href="#[22e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_finish_ret
</UL>
<BR>[Called By]<UL><LI><a href="#[2a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_md5_crypt
</UL>

<P><STRONG><a name="[22e]"></a>mbedtls_md5_finish_ret</STRONG> (Thumb, 222 bytes, Stack size 16 bytes, md5.o(i.mbedtls_md5_finish_ret))
<BR><BR>[Stack]<UL><LI>Max Depth = 132<LI>Call Chain = mbedtls_md5_finish_ret &rArr; mbedtls_internal_md5_process
</UL>
<BR>[Calls]<UL><LI><a href="#[22f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_internal_md5_process
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[22d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_finish
</UL>

<P><STRONG><a name="[230]"></a>mbedtls_md5_free</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, md5.o(i.mbedtls_md5_free))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = mbedtls_md5_free
</UL>
<BR>[Calls]<UL><LI><a href="#[229]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_platform_zeroize
</UL>
<BR>[Called By]<UL><LI><a href="#[2a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_md5_crypt
</UL>

<P><STRONG><a name="[231]"></a>mbedtls_md5_init</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, md5.o(i.mbedtls_md5_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = mbedtls_md5_init
</UL>
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[2a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_md5_crypt
</UL>

<P><STRONG><a name="[232]"></a>mbedtls_md5_starts</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, md5.o(i.mbedtls_md5_starts))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = mbedtls_md5_starts
</UL>
<BR>[Calls]<UL><LI><a href="#[233]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_starts_ret
</UL>
<BR>[Called By]<UL><LI><a href="#[2a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_md5_crypt
</UL>

<P><STRONG><a name="[233]"></a>mbedtls_md5_starts_ret</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, md5.o(i.mbedtls_md5_starts_ret))
<BR><BR>[Called By]<UL><LI><a href="#[232]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_starts
</UL>

<P><STRONG><a name="[234]"></a>mbedtls_md5_update</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, md5.o(i.mbedtls_md5_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 156<LI>Call Chain = mbedtls_md5_update &rArr; mbedtls_md5_update_ret &rArr; mbedtls_internal_md5_process
</UL>
<BR>[Calls]<UL><LI><a href="#[235]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_update_ret
</UL>
<BR>[Called By]<UL><LI><a href="#[2a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_md5_crypt
</UL>

<P><STRONG><a name="[235]"></a>mbedtls_md5_update_ret</STRONG> (Thumb, 124 bytes, Stack size 32 bytes, md5.o(i.mbedtls_md5_update_ret))
<BR><BR>[Stack]<UL><LI>Max Depth = 148<LI>Call Chain = mbedtls_md5_update_ret &rArr; mbedtls_internal_md5_process
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[22f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_internal_md5_process
</UL>
<BR>[Called By]<UL><LI><a href="#[234]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_update
</UL>

<P><STRONG><a name="[229]"></a>mbedtls_platform_zeroize</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, platform_util.o(i.mbedtls_platform_zeroize))
<BR><BR>[Called By]<UL><LI><a href="#[230]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_free
<LI><a href="#[228]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_free
</UL>

<P><STRONG><a name="[1a9]"></a>num_str_concatenate</STRONG> (Thumb, 80 bytes, Stack size 40 bytes, fpe_str.o(i.num_str_concatenate))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = num_str_concatenate &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[194]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;release_str
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[1a1]"></a>num_str_copy_of_range</STRONG> (Thumb, 58 bytes, Stack size 40 bytes, fpe_str.o(i.num_str_copy_of_range))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = num_str_copy_of_range &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[1a4]"></a>num_str_to_num</STRONG> (Thumb, 30 bytes, Stack size 16 bytes, fpe_str.o(i.num_str_to_num))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = num_str_to_num &rArr; to_byte_str &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[1a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[1a8]"></a>num_to_num_str</STRONG> (Thumb, 54 bytes, Stack size 40 bytes, fpe_str.o(i.num_to_num_str))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = num_to_num_str &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[2c]"></a>platform_reset</STRONG> (Thumb, 60 bytes, Stack size 24 bytes, arch_main.o(i.platform_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = platform_reset &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[23e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wdt_enable
<LI><a href="#[23d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_finish_transfers
<LI><a href="#[16d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_irq (via BLX)
<LI><a href="#[16c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[17e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_system_reset
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[ab]"></a>pow</STRONG> (ARM, 3764 bytes, Stack size 112 bytes, pow.o(i.pow))
<BR><BR>[Stack]<UL><LI>Max Depth = 264<LI>Call Chain = pow &rArr; __kernel_poly &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul (via Veneer)
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd (via BLX)
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv (via Veneer)
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_scalbn (via BLX)
<LI><a href="#[240]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrt
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub (via BLX)
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple (via BLX)
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d (via Veneer)
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub (via BLX)
<LI><a href="#[23f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno (via BLX)
<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__kernel_poly
<LI><a href="#[241]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassify
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_underflow
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_overflow
<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_invalid
<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_infnan2
<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_dbl_divzero
</UL>
<BR>[Called By]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TOTP (via BLX)
</UL>

<P><STRONG><a name="[1a6]"></a>prf</STRONG> (Thumb, 130 bytes, Stack size 344 bytes, fpe_cipher.o(i.prf))
<BR><BR>[Stack]<UL><LI>Max Depth = 476<LI>Call Chain = prf &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[22c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_enc
<LI><a href="#[22a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_init
<LI><a href="#[228]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_free
<LI><a href="#[224]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_cbc
<LI><a href="#[242]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vTuyaPortFree
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[24]"></a>prf_add_profile</STRONG> (Thumb, 130 bytes, Stack size 32 bytes, prf.o(i.prf_add_profile))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = prf_add_profile &rArr; prf_itf_get
</UL>
<BR>[Calls]<UL><LI><a href="#[243]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_itf_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[23]"></a>prf_cleanup</STRONG> (Thumb, 48 bytes, Stack size 32 bytes, prf.o(i.prf_cleanup))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = prf_cleanup &rArr; prf_itf_get
</UL>
<BR>[Calls]<UL><LI><a href="#[243]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_itf_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[22]"></a>prf_create</STRONG> (Thumb, 44 bytes, Stack size 24 bytes, prf.o(i.prf_create))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = prf_create &rArr; prf_itf_get
</UL>
<BR>[Calls]<UL><LI><a href="#[243]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_itf_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[1df]"></a>prf_dst_task_get</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, prf.o(i.prf_dst_task_get))
<BR><BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_write_req_ind_handler
</UL>

<P><STRONG><a name="[1c1]"></a>prf_env_get</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, prf.o(i.prf_env_get))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = prf_env_get
</UL>
<BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_write_req_ind_handler
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattc_read_req_ind_handler
<LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_fff1_level_upd_req_handler
<LI><a href="#[1c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_get_att_idx
<LI><a href="#[1c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_get_att_handle
</UL>

<P><STRONG><a name="[1f]"></a>prf_get_id_from_task</STRONG> (Thumb, 52 bytes, Stack size 12 bytes, prf.o(i.prf_get_id_from_task))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = prf_get_id_from_task
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[20]"></a>prf_get_task_from_id</STRONG> (Thumb, 52 bytes, Stack size 12 bytes, prf.o(i.prf_get_task_from_id))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = prf_get_task_from_id
</UL>
<BR>[Called By]<UL><LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff1_send_lvl
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[21]"></a>prf_init</STRONG> (Thumb, 112 bytes, Stack size 24 bytes, prf.o(i.prf_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = prf_init &rArr; prf_itf_get
</UL>
<BR>[Calls]<UL><LI><a href="#[244]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_task_msg_flush
<LI><a href="#[159]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_task_create
<LI><a href="#[243]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_itf_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[1c7]"></a>prf_src_task_get</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, prf.o(i.prf_src_task_get))
<BR><BR>[Called By]<UL><LI><a href="#[1c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_notify_fff1_lvl
</UL>

<P><STRONG><a name="[193]"></a>pvTuyaPortMalloc</STRONG> (Thumb, 148 bytes, Stack size 24 bytes, tuya_ble_heap.o(i.pvTuyaPortMalloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[247]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prvInsertBlockIntoFreeList
<LI><a href="#[246]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prvHeapInit
</UL>
<BR>[Called By]<UL><LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[1a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str_with_bignum
<LI><a href="#[1a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;to_byte_str
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
<LI><a href="#[1a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_to_num_str
<LI><a href="#[1a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_copy_of_range
<LI><a href="#[1a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_concatenate
<LI><a href="#[19d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;create_byte_str
<LI><a href="#[195]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_copy_of_range
<LI><a href="#[192]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_concatenate
</UL>

<P><STRONG><a name="[194]"></a>release_str</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, fpe_str.o(i.release_str))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = release_str &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[242]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vTuyaPortFree
</UL>
<BR>[Called By]<UL><LI><a href="#[1d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fpe_decrypt
<LI><a href="#[1a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_concatenate
<LI><a href="#[195]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_copy_of_range
<LI><a href="#[192]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_str_concatenate
<LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[d8]"></a>reset_with_disconn2_outtime_cb_handler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, lock_timer.o(i.reset_with_disconn2_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = reset_with_disconn2_outtime_cb_handler &rArr; app_port_device_reset &rArr; tuya_ble_device_reset &rArr; bk_system_reset &rArr; platform_reset &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[112]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_device_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[d4]"></a>reset_with_disconn_outtime_cb_handler</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, lock_timer.o(i.reset_with_disconn_outtime_cb_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = reset_with_disconn_outtime_cb_handler &rArr; lock_timer_start &rArr; app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_gap_disconnect
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_process
</UL>

<P><STRONG><a name="[248]"></a>rf_init</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, rf_xvr.o(i.rf_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = rf_init &rArr; initial_xver_BK3435V2_openLoop &rArr; kmod_calibration &rArr; Delay_ms
</UL>
<BR>[Calls]<UL><LI><a href="#[1e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;initial_xver_BK3435V2_openLoop
</UL>
<BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[249]"></a>rom_env_init</STRONG> (Thumb, 86 bytes, Stack size 8 bytes, arch_main.o(i.rom_env_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rom_env_init
</UL>
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[176]"></a>rtc_alarm_init</STRONG> (Thumb, 98 bytes, Stack size 12 bytes, rtc.o(i.rtc_alarm_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = rtc_alarm_init
</UL>
<BR>[Called By]<UL><LI><a href="#[124]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_local_timer_start
</UL>

<P><STRONG><a name="[a5]"></a>rtc_isr</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, rtc.o(i.rtc_isr))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rtc_isr
</UL>
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Exception
</UL>

<P><STRONG><a name="[24a]"></a>rw_app_enter</STRONG> (Thumb, 94 bytes, Stack size 0 bytes, arch_main.o(i.rw_app_enter))
<BR><BR>[Stack]<UL><LI>Max Depth = 1200<LI>Call Chain = rw_app_enter &rArr; tuya_ble_main_tasks_exec &rArr; tuya_sched_execute &rArr; tuya_ble_event_process &rArr; tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[166]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_ble_notify_handler
<LI><a href="#[172]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_wdt_feed
<LI><a href="#[23e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wdt_enable
<LI><a href="#[24c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_main_tasks_exec
<LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
<LI><a href="#[24b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_schedule
<LI><a href="#[24e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;icu_get_sleep_mode
<LI><a href="#[24f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_reduce_voltage_sleep
<LI><a href="#[250]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_idle_sleep
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Stack_Integrity_Check
<LI><a href="#[170]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_irq (via BLX)
<LI><a href="#[16f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_fiq (via BLX)
<LI><a href="#[16d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_irq (via BLX)
<LI><a href="#[16c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[251]"></a>rw_main</STRONG> (Thumb, 266 bytes, Stack size 64 bytes, arch_main.o(i.rw_main))
<BR><BR>[Stack]<UL><LI>Max Depth = 1264<LI>Call Chain = rw_main &rArr; rw_app_enter &rArr; tuya_ble_main_tasks_exec &rArr; tuya_sched_execute &rArr; tuya_ble_event_process &rArr; tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[18a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart2_init
<LI><a href="#[186]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart1_init
<LI><a href="#[175]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_init_bt_mac_addr
<LI><a href="#[178]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_init
<LI><a href="#[259]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_stack_register
<LI><a href="#[256]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;timer_init
<LI><a href="#[254]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;system_sleep_init
<LI><a href="#[252]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;srand
<LI><a href="#[24b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_schedule
<LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_pn9_enter
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
<LI><a href="#[25a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nvds_init
<LI><a href="#[258]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;intc_init
<LI><a href="#[1e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;icu_init
<LI><a href="#[1d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_init
<LI><a href="#[1c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_advance_init
<LI><a href="#[255]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;emi_init
<LI><a href="#[253]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_mode_init
<LI><a href="#[257]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_eif_api_init
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
<LI><a href="#[249]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rom_env_init
<LI><a href="#[170]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_irq (via BLX)
<LI><a href="#[16f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_Reset (via Veneer)
</UL>

<P><STRONG><a name="[25c]"></a>rwble_hl_init</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, rwble_hl.o(i.rwble_hl_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rwble_hl_init
</UL>
<BR>[Calls]<UL><LI><a href="#[25d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;attm_init
<LI><a href="#[25f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattm_init
<LI><a href="#[25e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_init
<LI><a href="#[260]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;l2cm_init
</UL>
<BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[25]"></a>rwble_hl_reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, rwble_hl.o(i.rwble_hl_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rwble_hl_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[25d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;attm_init
<LI><a href="#[25f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gattm_init
<LI><a href="#[25e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapm_init
<LI><a href="#[260]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;l2cm_init
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[261]"></a>rwble_init</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, rwble.o(i.rwble_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rwble_init
</UL>
<BR>[Calls]<UL><LI><a href="#[266]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;llm_ble_ready
<LI><a href="#[265]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;llm_init
<LI><a href="#[263]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_init
<LI><a href="#[264]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;llc_init
<LI><a href="#[262]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;em_buf_init
</UL>
<BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[9a]"></a>rwble_isr</STRONG> (Thumb, 232 bytes, Stack size 24 bytes, rwble.o(i.rwble_isr))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = rwble_isr &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2d
<LI><a href="#[26c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ea_sw_isr
<LI><a href="#[269]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ea_finetimer_isr
<LI><a href="#[26b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_evt_rx_isr
<LI><a href="#[26a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_evt_end_isr
<LI><a href="#[26d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_evt_timer_isr
<LI><a href="#[26e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_crypt_isr
<LI><a href="#[268]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup_end
<LI><a href="#[267]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2uiz
</UL>
<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FIQ_Exception
</UL>

<P><STRONG><a name="[26f]"></a>rwble_reset</STRONG> (Thumb, 86 bytes, Stack size 16 bytes, rwble.o(i.rwble_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = rwble_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[265]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;llm_init
<LI><a href="#[270]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_core_reset
<LI><a href="#[263]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_init
<LI><a href="#[271]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;llc_reset
<LI><a href="#[262]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;em_buf_init
<LI><a href="#[252]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;srand
<LI><a href="#[170]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_irq (via BLX)
<LI><a href="#[16f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_fiq (via BLX)
<LI><a href="#[16d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_irq (via BLX)
<LI><a href="#[16c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_reset
</UL>

<P><STRONG><a name="[27f]"></a>rwble_sleep_check</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, rwble.o(i.rwble_sleep_check))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[27d]"></a>rwip_check_wakeup_boundary</STRONG> (Thumb, 34 bytes, Stack size 0 bytes, rwip.o(i.rwip_check_wakeup_boundary))
<BR><BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
</UL>

<P><STRONG><a name="[257]"></a>rwip_eif_api_init</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, arch_main.o(i.rwip_eif_api_init))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[274]"></a>rwip_eif_get</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, arch_main.o(i.rwip_eif_get))
<BR><BR>[Called By]<UL><LI><a href="#[25b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_init
</UL>

<P><STRONG><a name="[25b]"></a>rwip_init</STRONG> (Thumb, 182 bytes, Stack size 24 bytes, rwip.o(i.rwip_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = rwip_init &rArr; rf_init &rArr; initial_xver_BK3435V2_openLoop &rArr; kmod_calibration &rArr; Delay_ms
</UL>
<BR>[Calls]<UL><LI><a href="#[278]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ea_init
<LI><a href="#[15b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nvds_get
<LI><a href="#[273]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_mem_init
<LI><a href="#[272]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_init
<LI><a href="#[274]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_eif_get
<LI><a href="#[248]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rf_init
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_init
<LI><a href="#[25c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_hl_init
<LI><a href="#[261]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_init
<LI><a href="#[277]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ahi_init
<LI><a href="#[275]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;h4tl_init
<LI><a href="#[276]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;hci_init
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[28]"></a>rwip_prevent_sleep_clear</STRONG> (Thumb, 42 bytes, Stack size 16 bytes, rwip.o(i.rwip_prevent_sleep_clear))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = rwip_prevent_sleep_clear
</UL>
<BR>[Calls]<UL><LI><a href="#[170]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_irq (via BLX)
<LI><a href="#[16f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_fiq (via BLX)
<LI><a href="#[16d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_irq (via BLX)
<LI><a href="#[16c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[268]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup_end
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[27]"></a>rwip_prevent_sleep_set</STRONG> (Thumb, 42 bytes, Stack size 16 bytes, rwip.o(i.rwip_prevent_sleep_set))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = rwip_prevent_sleep_set
</UL>
<BR>[Calls]<UL><LI><a href="#[170]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_irq (via BLX)
<LI><a href="#[16f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_fiq (via BLX)
<LI><a href="#[16d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_irq (via BLX)
<LI><a href="#[16c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_fiq (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[24d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_sleep
<LI><a href="#[267]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[26]"></a>rwip_reset</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, rwip.o(i.rwip_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = rwip_reset &rArr; rwble_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[278]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ea_init
<LI><a href="#[279]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_flush
<LI><a href="#[26f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_reset
<LI><a href="#[170]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_irq (via BLX)
<LI><a href="#[16f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_enable_fiq (via BLX)
<LI><a href="#[16d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_irq (via BLX)
<LI><a href="#[16c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_disable_fiq (via BLX)
<LI><a href="#[27a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;hci_reset
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[24b]"></a>rwip_schedule</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, rwip.o(i.rwip_schedule))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rwip_schedule
</UL>
<BR>[Calls]<UL><LI><a href="#[27b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_event_schedule
</UL>
<BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[24d]"></a>rwip_sleep</STRONG> (Thumb, 144 bytes, Stack size 16 bytes, rwip.o(i.rwip_sleep))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = rwip_sleep &rArr; rwip_prevent_sleep_set
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[280]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ea_sleep_check
<LI><a href="#[283]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_sleep_enter
<LI><a href="#[27e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_timer_sleep_check
<LI><a href="#[27c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_sleep_check
<LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_set
<LI><a href="#[282]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;check_uart_stop
<LI><a href="#[27d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_check_wakeup_boundary
<LI><a href="#[27f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_sleep_check
<LI><a href="#[281]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;h4tl_stop
</UL>
<BR>[Called By]<UL><LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[29]"></a>rwip_sleep_lpcycles_2_us</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, rwip.o(i.rwip_sleep_lpcycles_2_us))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rwip_sleep_lpcycles_2_us
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[2a]"></a>rwip_us_2_lpcycles</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, rwip.o(i.rwip_us_2_lpcycles))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = rwip_us_2_lpcycles
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_wakeup_delay_set
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[267]"></a>rwip_wakeup</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, rwip.o(i.rwip_wakeup))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = rwip_wakeup &rArr; rwip_prevent_sleep_set
</UL>
<BR>[Calls]<UL><LI><a href="#[284]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_sleep_wakeup
<LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_set
<LI><a href="#[285]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;h4tl_start
</UL>
<BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[2b]"></a>rwip_wakeup_delay_set</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, rwip.o(i.rwip_wakeup_delay_set))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = rwip_wakeup_delay_set &rArr; rwip_us_2_lpcycles
</UL>
<BR>[Calls]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_us_2_lpcycles
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[268]"></a>rwip_wakeup_end</STRONG> (Thumb, 36 bytes, Stack size 8 bytes, rwip.o(i.rwip_wakeup_end))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = rwip_wakeup_end &rArr; rwip_prevent_sleep_clear
</UL>
<BR>[Calls]<UL><LI><a href="#[286]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lld_sleep_wakeup_end
<LI><a href="#[287]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_event_set
<LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwip_prevent_sleep_clear
</UL>
<BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rwble_isr
</UL>

<P><STRONG><a name="[289]"></a>sd_free</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, sf_mem.o(i.sd_free))
<BR><BR>[Called By]<UL><LI><a href="#[23a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_free
</UL>

<P><STRONG><a name="[288]"></a>sd_malloc</STRONG> (Thumb, 76 bytes, Stack size 16 bytes, sf_mem.o(i.sd_malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = sd_malloc
</UL>
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[238]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_malloc
</UL>

<P><STRONG><a name="[28b]"></a>sd_mem_init</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, sf_mem.o(i.sd_mem_init))
<BR><BR>[Called By]<UL><LI><a href="#[28a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_mem_init
</UL>

<P><STRONG><a name="[1d3]"></a>set_flash_clk</STRONG> (Thumb, 40 bytes, Stack size 0 bytes, flash.o(i.set_flash_clk))
<BR><BR>[Called By]<UL><LI><a href="#[1d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_init
</UL>

<P><STRONG><a name="[23a]"></a>sf_free</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, sf_port.o(i.sf_free))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = sf_free
</UL>
<BR>[Calls]<UL><LI><a href="#[289]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sd_free
</UL>
<BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_read
<LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
</UL>

<P><STRONG><a name="[238]"></a>sf_malloc</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, sf_port.o(i.sf_malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = sf_malloc &rArr; sd_malloc
</UL>
<BR>[Calls]<UL><LI><a href="#[288]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sd_malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_read
<LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
</UL>

<P><STRONG><a name="[28a]"></a>sf_mem_init</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, sf_port.o(i.sf_mem_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = sf_mem_init
</UL>
<BR>[Calls]<UL><LI><a href="#[28b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sd_mem_init
</UL>
<BR>[Called By]<UL><LI><a href="#[12d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_init
</UL>

<P><STRONG><a name="[128]"></a>sf_nv_delete</STRONG> (Thumb, 168 bytes, Stack size 32 bytes, sf_nv.o(i.sf_nv_delete))
<BR><BR>[Stack]<UL><LI>Max Depth = 236<LI>Call Chain = sf_nv_delete &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[28c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_next_unit_addr
<LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
<LI><a href="#[28d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;addr_is_valid
</UL>
<BR>[Called By]<UL><LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_del
</UL>

<P><STRONG><a name="[12d]"></a>sf_nv_init</STRONG> (Thumb, 200 bytes, Stack size 40 bytes, sf_nv.o(i.sf_nv_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 268<LI>Call Chain = sf_nv_init &rArr; update_area_header &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[28a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_mem_init
<LI><a href="#[28e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;update_area_header
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
</UL>
<BR>[Called By]<UL><LI><a href="#[12b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_init
</UL>

<P><STRONG><a name="[12a]"></a>sf_nv_read</STRONG> (Thumb, 200 bytes, Stack size 48 bytes, sf_nv.o(i.sf_nv_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 232<LI>Call Chain = sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[238]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_malloc
<LI><a href="#[23a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_free
<LI><a href="#[28c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_next_unit_addr
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
<LI><a href="#[28d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;addr_is_valid
</UL>
<BR>[Called By]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
</UL>

<P><STRONG><a name="[12e]"></a>sf_nv_write</STRONG> (Thumb, 654 bytes, Stack size 64 bytes, sf_nv.o(i.sf_nv_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 324 + In Cycle
<LI>Call Chain = sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[238]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_malloc
<LI><a href="#[23a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_free
<LI><a href="#[28e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;update_area_header
<LI><a href="#[28c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_next_unit_addr
<LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
<LI><a href="#[236]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_erase
<LI><a href="#[28d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;addr_is_valid
</UL>
<BR>[Called By]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
</UL>

<P><STRONG><a name="[130]"></a>sf_port_flash_erase</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, sf_port.o(i.sf_port_flash_erase))
<BR><BR>[Stack]<UL><LI>Max Depth = 252<LI>Call Chain = sf_port_flash_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[171]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[12f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set_default
<LI><a href="#[236]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_erase
</UL>

<P><STRONG><a name="[239]"></a>sf_port_flash_read</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, sf_port.o(i.sf_port_flash_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = sf_port_flash_read &rArr; bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[173]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_read
</UL>
<BR>[Called By]<UL><LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
</UL>

<P><STRONG><a name="[23c]"></a>sf_port_flash_write</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, sf_port.o(i.sf_port_flash_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 164<LI>Call Chain = sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[174]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_write
</UL>
<BR>[Called By]<UL><LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
</UL>

<P><STRONG><a name="[240]"></a>sqrt</STRONG> (ARM, 96 bytes, Stack size 24 bytes, sqrt.o(i.sqrt))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = sqrt &rArr; _dsqrt &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_dsqrt (via BLX)
<LI><a href="#[23f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow
</UL>

<P><STRONG><a name="[19c]"></a>switch_clk</STRONG> (Thumb, 82 bytes, Stack size 20 bytes, icu.o(i.switch_clk))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = switch_clk
</UL>
<BR>[Called By]<UL><LI><a href="#[1e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;icu_init
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpu_wakeup
</UL>

<P><STRONG><a name="[253]"></a>sys_mode_init</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, arch_main.o(i.sys_mode_init))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[254]"></a>system_sleep_init</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, icu.o(i.system_sleep_init))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[256]"></a>timer_init</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, timer.o(i.timer_init))
<BR><BR>[Called By]<UL><LI><a href="#[251]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_main
</UL>

<P><STRONG><a name="[1a2]"></a>to_byte_str</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, fpe_str.o(i.to_byte_str))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = to_byte_str &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[1a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;num_str_to_num
<LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[1a5]"></a>to_byte_str_with_bignum</STRONG> (Thumb, 72 bytes, Stack size 40 bytes, fpe_str.o(i.to_byte_str_with_bignum))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = to_byte_str_with_bignum &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[1a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;decrypt
</UL>

<P><STRONG><a name="[290]"></a>trsmitr_init</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_mutli_tsf_protocol.o(i.trsmitr_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = trsmitr_init
</UL>
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>

<P><STRONG><a name="[18f]"></a>trsmitr_recv_pkg_decode</STRONG> (Thumb, 268 bytes, Stack size 24 bytes, tuya_ble_mutli_tsf_protocol.o(i.trsmitr_recv_pkg_decode))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = trsmitr_recv_pkg_decode
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[18e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ble_data_unpack
</UL>

<P><STRONG><a name="[291]"></a>trsmitr_send_pkg_encode</STRONG> (Thumb, 248 bytes, Stack size 24 bytes, tuya_ble_mutli_tsf_protocol.o(i.trsmitr_send_pkg_encode))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = trsmitr_send_pkg_encode
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>

<P><STRONG><a name="[293]"></a>tuya_ble_adv_change</STRONG> (Thumb, 240 bytes, Stack size 64 bytes, tuya_ble_main.o(i.tuya_ble_adv_change))
<BR><BR>[Stack]<UL><LI>Max Depth = 580<LI>Call Chain = tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[296]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_advertising_scan_rsp_data_update
<LI><a href="#[295]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_advertising_adv_data_update
<LI><a href="#[297]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encrypt_old_with_key
<LI><a href="#[294]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_id_encrypt
</UL>
<BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
<LI><a href="#[2aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_unbond
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
<LI><a href="#[2af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_info_update_evt
</UL>

<P><STRONG><a name="[298]"></a>tuya_ble_aes128_cbc_decrypt</STRONG> (Thumb, 66 bytes, Stack size 312 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_aes128_cbc_decrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 636<LI>Call Chain = tuya_ble_aes128_cbc_decrypt &rArr; mbedtls_aes_setkey_dec &rArr; mbedtls_aes_setkey_enc
</UL>
<BR>[Calls]<UL><LI><a href="#[22b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_dec
<LI><a href="#[22a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_init
<LI><a href="#[228]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_free
<LI><a href="#[224]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_cbc
</UL>
<BR>[Called By]<UL><LI><a href="#[2a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_decryption
</UL>

<P><STRONG><a name="[108]"></a>tuya_ble_aes128_cbc_encrypt</STRONG> (Thumb, 66 bytes, Stack size 312 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_aes128_cbc_encrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 444<LI>Call Chain = tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[22c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_enc
<LI><a href="#[22a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_init
<LI><a href="#[228]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_free
<LI><a href="#[224]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_cbc
</UL>
<BR>[Called By]<UL><LI><a href="#[107]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_aes128_cbc_encrypt
<LI><a href="#[2a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encryption
<LI><a href="#[2a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_key_generate
<LI><a href="#[294]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_id_encrypt
</UL>

<P><STRONG><a name="[299]"></a>tuya_ble_aes128_ecb_encrypt</STRONG> (Thumb, 76 bytes, Stack size 304 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_aes128_ecb_encrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 380<LI>Call Chain = tuya_ble_aes128_ecb_encrypt &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[22c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_setkey_enc
<LI><a href="#[22a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_init
<LI><a href="#[228]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_free
<LI><a href="#[225]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_aes_crypt_ecb
</UL>
<BR>[Called By]<UL><LI><a href="#[297]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encrypt_old_with_key
</UL>

<P><STRONG><a name="[29a]"></a>tuya_ble_app_production_test_process</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_app_production_test_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 1072<LI>Call Chain = tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[119]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_factory_test_process
</UL>
<BR>[Called By]<UL><LI><a href="#[2bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ble_factory_test_req
<LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
</UL>

<P><STRONG><a name="[109]"></a>tuya_ble_callback_queue_register</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, tuya_ble_api.o(i.tuya_ble_callback_queue_register))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_callback_queue_register &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_callback_queue_register
</UL>

<P><STRONG><a name="[29b]"></a>tuya_ble_cb_event_send</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, tuya_ble_main.o(i.tuya_ble_cb_event_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = tuya_ble_cb_event_send &rArr; tuya_ble_inter_event_response &rArr; tuya_ble_free &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[29c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_inter_event_response
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_unix_time_char_ms_resp
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_req
<LI><a href="#[2b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_net_config_info_req
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[2ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_query_req
<LI><a href="#[2be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_reset_req
<LI><a href="#[2b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_connect_change_evt
</UL>

<P><STRONG><a name="[29d]"></a>tuya_ble_commData_send</STRONG> (Thumb, 408 bytes, Stack size 88 bytes, tuya_ble_data_handler.o(i.tuya_ble_commData_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 652<LI>Call Chain = tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[15c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rand
<LI><a href="#[2a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gatt_send_data
<LI><a href="#[2a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_delay_ms
<LI><a href="#[29f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump_empty
<LI><a href="#[2a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encryption
<LI><a href="#[29e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_crc16_compute
<LI><a href="#[291]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;trsmitr_send_pkg_encode
<LI><a href="#[290]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;trsmitr_init
<LI><a href="#[190]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_trsmitr_subpkg_len
<LI><a href="#[191]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_trsmitr_subpkg
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[223]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_lock_test_rsp
<LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_net_config_info_req
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[2ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_query_req
<LI><a href="#[2be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_reset_req
<LI><a href="#[2bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dev_infor_req
<LI><a href="#[2bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ble_factory_test_req
<LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
<LI><a href="#[2b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_response_evt
<LI><a href="#[2b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_data_with_time_reported_evt
</UL>

<P><STRONG><a name="[2a3]"></a>tuya_ble_commonData_rx_proc</STRONG> (Thumb, 310 bytes, Stack size 88 bytes, tuya_ble_data_handler.o(i.tuya_ble_commonData_rx_proc))
<BR><BR>[Stack]<UL><LI>Max Depth = 796<LI>Call Chain = tuya_ble_commonData_rx_proc &rArr; tuya_ble_decryption &rArr; tuya_ble_aes128_cbc_decrypt &rArr; mbedtls_aes_setkey_dec &rArr; mbedtls_aes_setkey_enc
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[10b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_disconnect
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[29f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump_empty
<LI><a href="#[2a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_decryption
<LI><a href="#[29e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_crc16_compute
<LI><a href="#[18e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ble_data_unpack
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[2c2]"></a>tuya_ble_connect_monitor_timer_start</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, tuya_ble_api.o(i.tuya_ble_connect_monitor_timer_start))
<BR><BR>[Called By]<UL><LI><a href="#[2b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_connect_change_evt
</UL>

<P><STRONG><a name="[2c5]"></a>tuya_ble_connect_monitor_timer_stop</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, tuya_ble_api.o(i.tuya_ble_connect_monitor_timer_stop))
<BR><BR>[Called By]<UL><LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
</UL>

<P><STRONG><a name="[115]"></a>tuya_ble_connect_status_get</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, tuya_ble_main.o(i.tuya_ble_connect_status_get))
<BR><BR>[Called By]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_monitor_outtime_cb_handler
<LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
<LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
<LI><a href="#[11e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_connect_status
<LI><a href="#[132]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_ota_response
<LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
<LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_reset_req
</UL>

<P><STRONG><a name="[2a6]"></a>tuya_ble_connect_status_set</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, tuya_ble_main.o(i.tuya_ble_connect_status_set))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_connect_status_set &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
<LI><a href="#[2aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_unbond
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_connect_change_evt
</UL>

<P><STRONG><a name="[1d9]"></a>tuya_ble_connected_handler</STRONG> (Thumb, 22 bytes, Stack size 48 bytes, tuya_ble_api.o(i.tuya_ble_connected_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = tuya_ble_connected_handler &rArr; tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_connection_req_ind_handler
</UL>

<P><STRONG><a name="[29e]"></a>tuya_ble_crc16_compute</STRONG> (Thumb, 50 bytes, Stack size 20 bytes, tuya_ble_utils.o(i.tuya_ble_crc16_compute))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = tuya_ble_crc16_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>

<P><STRONG><a name="[163]"></a>tuya_ble_crc32_compute</STRONG> (Thumb, 56 bytes, Stack size 20 bytes, tuya_ble_utils.o(i.tuya_ble_crc32_compute))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = tuya_ble_crc32_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_auth_settings
<LI><a href="#[28f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_settings_crc_ok
<LI><a href="#[162]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;auth_settings_crc_ok
</UL>

<P><STRONG><a name="[10a]"></a>tuya_ble_custom_event_send</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, tuya_ble_main.o(i.tuya_ble_custom_event_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = tuya_ble_custom_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[2a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_message_send
</UL>
<BR>[Called By]<UL><LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_custom_event_send
</UL>

<P><STRONG><a name="[2a4]"></a>tuya_ble_decryption</STRONG> (Thumb, 152 bytes, Stack size 72 bytes, tuya_ble_cryption_api.o(i.tuya_ble_decryption))
<BR><BR>[Stack]<UL><LI>Max Depth = 708<LI>Call Chain = tuya_ble_decryption &rArr; tuya_ble_aes128_cbc_decrypt &rArr; mbedtls_aes_setkey_dec &rArr; mbedtls_aes_setkey_enc
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[298]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_decrypt
<LI><a href="#[2a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_key_generate
</UL>
<BR>[Called By]<UL><LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
</UL>

<P><STRONG><a name="[2a1]"></a>tuya_ble_device_delay_ms</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_device_delay_ms))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_device_delay_ms &rArr; bk_delay_ms &rArr; Delay_ms
</UL>
<BR>[Calls]<UL><LI><a href="#[168]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_delay_ms
</UL>
<BR>[Called By]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>

<P><STRONG><a name="[f8]"></a>tuya_ble_device_enter_critical</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_device_enter_critical))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = tuya_ble_device_enter_critical &rArr; bk_enter_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[16b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_enter_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
<LI><a href="#[10a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_custom_event_send
<LI><a href="#[109]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_callback_queue_register
<LI><a href="#[242]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vTuyaPortFree
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[2c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_reset_ble_sn
<LI><a href="#[2c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_pair_rand_clear
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_set
</UL>

<P><STRONG><a name="[fa]"></a>tuya_ble_device_exit_critical</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_device_exit_critical))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[16e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_exit_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
<LI><a href="#[10a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_custom_event_send
<LI><a href="#[109]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_callback_queue_register
<LI><a href="#[242]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vTuyaPortFree
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[2c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_reset_ble_sn
<LI><a href="#[2c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_pair_rand_clear
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_set
</UL>

<P><STRONG><a name="[143]"></a>tuya_ble_device_factory_reset</STRONG> (Thumb, 26 bytes, Stack size 48 bytes, tuya_ble_api.o(i.tuya_ble_device_factory_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = tuya_ble_device_factory_reset &rArr; tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[142]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_tuya_ble_device_factory_reset
</UL>

<P><STRONG><a name="[294]"></a>tuya_ble_device_id_encrypt</STRONG> (Thumb, 102 bytes, Stack size 72 bytes, tuya_ble_cryption_api.o(i.tuya_ble_device_id_encrypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 516<LI>Call Chain = tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_md5_crypt
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
<LI><a href="#[29f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump_empty
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
</UL>

<P><STRONG><a name="[113]"></a>tuya_ble_device_reset</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_device_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = tuya_ble_device_reset &rArr; bk_system_reset &rArr; platform_reset &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[17e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_system_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[112]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_device_reset
</UL>

<P><STRONG><a name="[2aa]"></a>tuya_ble_device_unbond</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, tuya_ble_data_handler.o(i.tuya_ble_device_unbond))
<BR><BR>[Stack]<UL><LI>Max Depth = 588<LI>Call Chain = tuya_ble_device_unbond &rArr; tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[10b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_disconnect
<LI><a href="#[2a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_set
<LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_reset_req
</UL>

<P><STRONG><a name="[1da]"></a>tuya_ble_disconnected_handler</STRONG> (Thumb, 22 bytes, Stack size 48 bytes, tuya_ble_api.o(i.tuya_ble_disconnected_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = tuya_ble_disconnected_handler &rArr; tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gapc_disconnect_ind_handler
</UL>

<P><STRONG><a name="[116]"></a>tuya_ble_dp_data_report</STRONG> (Thumb, 118 bytes, Stack size 72 bytes, tuya_ble_api.o(i.tuya_ble_dp_data_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = tuya_ble_dp_data_report &rArr; data_2_klvlist &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
<LI><a href="#[19f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free_klv_list
<LI><a href="#[19e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;data_2_klvlist
</UL>
<BR>[Called By]<UL><LI><a href="#[114]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_report
</UL>

<P><STRONG><a name="[118]"></a>tuya_ble_dp_data_with_time_report</STRONG> (Thumb, 120 bytes, Stack size 80 bytes, tuya_ble_api.o(i.tuya_ble_dp_data_with_time_report))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = tuya_ble_dp_data_with_time_report &rArr; data_2_klvlist &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
<LI><a href="#[19f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free_klv_list
<LI><a href="#[19e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;data_2_klvlist
</UL>
<BR>[Called By]<UL><LI><a href="#[117]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_dp_data_with_time_report
</UL>

<P><STRONG><a name="[297]"></a>tuya_ble_encrypt_old_with_key</STRONG> (Thumb, 66 bytes, Stack size 16 bytes, tuya_ble_cryption_api.o(i.tuya_ble_encrypt_old_with_key))
<BR><BR>[Stack]<UL><LI>Max Depth = 396<LI>Call Chain = tuya_ble_encrypt_old_with_key &rArr; tuya_ble_aes128_ecb_encrypt &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[299]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_ecb_encrypt
<LI><a href="#[292]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_Add_Pkcs
<LI><a href="#[2ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_hextoascii
</UL>
<BR>[Called By]<UL><LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
</UL>

<P><STRONG><a name="[2a0]"></a>tuya_ble_encryption</STRONG> (Thumb, 104 bytes, Stack size 56 bytes, tuya_ble_cryption_api.o(i.tuya_ble_encryption))
<BR><BR>[Stack]<UL><LI>Max Depth = 564<LI>Call Chain = tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
<LI><a href="#[2a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_key_generate
<LI><a href="#[292]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_Add_Pkcs
</UL>
<BR>[Called By]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>

<P><STRONG><a name="[2ac]"></a>tuya_ble_event_init</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, tuya_ble_main.o(i.tuya_ble_event_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = tuya_ble_event_init &rArr; tuya_ble_event_queue_init &rArr; tuya_ble_sched_init
</UL>
<BR>[Calls]<UL><LI><a href="#[2ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_queue_init
</UL>
<BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
</UL>

<P><STRONG><a name="[2ae]"></a>tuya_ble_event_process</STRONG> (Thumb, 244 bytes, Stack size 16 bytes, tuya_ble_main.o(i.tuya_ble_event_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 1176<LI>Call Chain = tuya_ble_event_process &rArr; tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
<LI><a href="#[2b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_pair_rand_valid_get
<LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
<LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
<LI><a href="#[2b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_response_evt
<LI><a href="#[2b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_data_with_time_reported_evt
<LI><a href="#[2af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_info_update_evt
<LI><a href="#[2b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_connect_change_evt
</UL>
<BR>[Called By]<UL><LI><a href="#[2c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_sched_execute
</UL>

<P><STRONG><a name="[2ad]"></a>tuya_ble_event_queue_init</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, tuya_ble_event.o(i.tuya_ble_event_queue_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_event_queue_init &rArr; tuya_ble_sched_init
</UL>
<BR>[Calls]<UL><LI><a href="#[2b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sched_init
</UL>
<BR>[Called By]<UL><LI><a href="#[2ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_init
</UL>

<P><STRONG><a name="[2a5]"></a>tuya_ble_event_send</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, tuya_ble_main.o(i.tuya_ble_event_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[2a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_message_send
</UL>
<BR>[Called By]<UL><LI><a href="#[132]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_ota_response
<LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
<LI><a href="#[143]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_factory_reset
<LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
<LI><a href="#[17d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gatt_receive_data
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[1da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_disconnected_handler
<LI><a href="#[1d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connected_handler
</UL>

<P><STRONG><a name="[2b4]"></a>tuya_ble_evt_process</STRONG> (Thumb, 362 bytes, Stack size 48 bytes, tuya_ble_data_handler.o(i.tuya_ble_evt_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 1160<LI>Call Chain = tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[2aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_unbond
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_unix_time_char_ms_resp
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_req
<LI><a href="#[2b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_net_config_info_req
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[2ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_query_req
<LI><a href="#[2be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_reset_req
<LI><a href="#[2bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dev_infor_req
<LI><a href="#[2bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ble_factory_test_req
</UL>
<BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[11b]"></a>tuya_ble_free</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, tuya_ble_mem.o(i.tuya_ble_free))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = tuya_ble_free &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[242]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vTuyaPortFree
</UL>
<BR>[Called By]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_free
<LI><a href="#[132]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_ota_response
<LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
<LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
<LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[2bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_req
<LI><a href="#[2b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_net_config_info_req
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[2ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_query_req
<LI><a href="#[2bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ble_factory_test_req
<LI><a href="#[19f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free_klv_list
<LI><a href="#[19e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;data_2_klvlist
<LI><a href="#[29c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_inter_event_response
<LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
<LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
<LI><a href="#[2b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_response_evt
<LI><a href="#[2b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_data_with_time_reported_evt
</UL>

<P><STRONG><a name="[295]"></a>tuya_ble_gap_advertising_adv_data_update</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_gap_advertising_adv_data_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = tuya_ble_gap_advertising_adv_data_update &rArr; bk_adv_update_advDataAndScanRsp &rArr; appm_update_adv_data
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_update_advDataAndScanRsp
</UL>
<BR>[Called By]<UL><LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
</UL>

<P><STRONG><a name="[296]"></a>tuya_ble_gap_advertising_scan_rsp_data_update</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_gap_advertising_scan_rsp_data_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = tuya_ble_gap_advertising_scan_rsp_data_update &rArr; bk_adv_update_advDataAndScanRsp &rArr; appm_update_adv_data
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_update_advDataAndScanRsp
</UL>
<BR>[Called By]<UL><LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
</UL>

<P><STRONG><a name="[10b]"></a>tuya_ble_gap_disconnect</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_gap_disconnect))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_gap_disconnect &rArr; bk_disconnect &rArr; appm_disconnect
</UL>
<BR>[Calls]<UL><LI><a href="#[16a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_disconnect
</UL>
<BR>[Called By]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_gap_disconnect
<LI><a href="#[2aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_unbond
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
</UL>

<P><STRONG><a name="[17d]"></a>tuya_ble_gatt_receive_data</STRONG> (Thumb, 46 bytes, Stack size 48 bytes, tuya_ble_api.o(i.tuya_ble_gatt_receive_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = tuya_ble_gatt_receive_data &rArr; tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[17c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_svc_receive_data
</UL>

<P><STRONG><a name="[2a2]"></a>tuya_ble_gatt_send_data</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_gatt_send_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_gatt_send_data &rArr; bk_ble_notify
</UL>
<BR>[Calls]<UL><LI><a href="#[165]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_ble_notify
</UL>
<BR>[Called By]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>

<P><STRONG><a name="[2ab]"></a>tuya_ble_hextoascii</STRONG> (Thumb, 70 bytes, Stack size 12 bytes, tuya_ble_utils.o(i.tuya_ble_hextoascii))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = tuya_ble_hextoascii
</UL>
<BR>[Called By]<UL><LI><a href="#[297]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encrypt_old_with_key
</UL>

<P><STRONG><a name="[29c]"></a>tuya_ble_inter_event_response</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, tuya_ble_main.o(i.tuya_ble_inter_event_response))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = tuya_ble_inter_event_response &rArr; tuya_ble_free &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
</UL>

<P><STRONG><a name="[2c9]"></a>tuya_ble_is_word_aligned_tuya</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, tuya_ble_utils.o(i.tuya_ble_is_word_aligned_tuya))
<BR><BR>[Called By]<UL><LI><a href="#[2b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sched_init
</UL>

<P><STRONG><a name="[223]"></a>tuya_ble_lock_test_rsp</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, tuya_ble_data_handler.o(i.tuya_ble_lock_test_rsp))
<BR><BR>[Stack]<UL><LI>Max Depth = 660<LI>Call Chain = tuya_ble_lock_test_rsp &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>
<BR>[Called By]<UL><LI><a href="#[222]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_rsp
</UL>

<P><STRONG><a name="[24c]"></a>tuya_ble_main_tasks_exec</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, tuya_ble_main.o(i.tuya_ble_main_tasks_exec))
<BR><BR>[Stack]<UL><LI>Max Depth = 1200<LI>Call Chain = tuya_ble_main_tasks_exec &rArr; tuya_sched_execute &rArr; tuya_ble_event_process &rArr; tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[2c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_sched_execute
</UL>
<BR>[Called By]<UL><LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[125]"></a>tuya_ble_malloc</STRONG> (Thumb, 22 bytes, Stack size 16 bytes, tuya_ble_mem.o(i.tuya_ble_malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_malloc
<LI><a href="#[132]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_ota_response
<LI><a href="#[118]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_with_time_report
<LI><a href="#[116]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_dp_data_report
<LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
<LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
<LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
<LI><a href="#[2bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_req
<LI><a href="#[2b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_net_config_info_req
<LI><a href="#[2b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_write_req
<LI><a href="#[2ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_query_req
<LI><a href="#[2bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ble_factory_test_req
<LI><a href="#[19e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;data_2_klvlist
<LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
</UL>

<P><STRONG><a name="[2a9]"></a>tuya_ble_md5_crypt</STRONG> (Thumb, 52 bytes, Stack size 104 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_md5_crypt))
<BR><BR>[Stack]<UL><LI>Max Depth = 260<LI>Call Chain = tuya_ble_md5_crypt &rArr; mbedtls_md5_update &rArr; mbedtls_md5_update_ret &rArr; mbedtls_internal_md5_process
</UL>
<BR>[Calls]<UL><LI><a href="#[234]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_update
<LI><a href="#[232]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_starts
<LI><a href="#[231]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_init
<LI><a href="#[230]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_free
<LI><a href="#[22d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mbedtls_md5_finish
</UL>
<BR>[Called By]<UL><LI><a href="#[2a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_key_generate
<LI><a href="#[294]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_id_encrypt
</UL>

<P><STRONG><a name="[2a7]"></a>tuya_ble_message_send</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, tuya_ble_event.o(i.tuya_ble_message_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[2c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sched_event_put
</UL>
<BR>[Called By]<UL><LI><a href="#[10a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_custom_event_send
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
</UL>

<P><STRONG><a name="[129]"></a>tuya_ble_nv_erase</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_nv_erase))
<BR><BR>[Stack]<UL><LI>Max Depth = 252<LI>Call Chain = tuya_ble_nv_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[171]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_auth_settings
<LI><a href="#[f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_erase
</UL>

<P><STRONG><a name="[2cd]"></a>tuya_ble_nv_init</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_nv_init))
<BR><BR>[Called By]<UL><LI><a href="#[2ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_init
</UL>

<P><STRONG><a name="[101]"></a>tuya_ble_nv_read</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_nv_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = tuya_ble_nv_read &rArr; bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[173]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_read
</UL>
<BR>[Called By]<UL><LI><a href="#[f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_read
<LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_get_crc32_in_flash
<LI><a href="#[2ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_load_settings
</UL>

<P><STRONG><a name="[131]"></a>tuya_ble_nv_write</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_nv_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 164<LI>Call Chain = tuya_ble_nv_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[174]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_flash_write
</UL>
<BR>[Called By]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_auth_settings
<LI><a href="#[f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_write
</UL>

<P><STRONG><a name="[132]"></a>tuya_ble_ota_response</STRONG> (Thumb, 96 bytes, Stack size 56 bytes, tuya_ble_api.o(i.tuya_ble_ota_response))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = tuya_ble_ota_response &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[29f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump_empty
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[106]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ota_rsp
</UL>

<P><STRONG><a name="[2c3]"></a>tuya_ble_pair_rand_clear</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, tuya_ble_data_handler.o(i.tuya_ble_pair_rand_clear))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_pair_rand_clear &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[2bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dev_infor_req
<LI><a href="#[2b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_connect_change_evt
</UL>

<P><STRONG><a name="[2b0]"></a>tuya_ble_pair_rand_valid_get</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, tuya_ble_data_handler.o(i.tuya_ble_pair_rand_valid_get))
<BR><BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
<LI><a href="#[2b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_ota_response_evt
<LI><a href="#[2b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dp_data_with_time_reported_evt
</UL>

<P><STRONG><a name="[2c4]"></a>tuya_ble_rand_generator</STRONG> (Thumb, 58 bytes, Stack size 24 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_rand_generator))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_rand_generator
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[15c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rand
</UL>
<BR>[Called By]<UL><LI><a href="#[2bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_dev_infor_req
</UL>

<P><STRONG><a name="[2c1]"></a>tuya_ble_reset_ble_sn</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, tuya_ble_data_handler.o(i.tuya_ble_reset_ble_sn))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_reset_ble_sn &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
</UL>
<BR>[Called By]<UL><LI><a href="#[2b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_connect_change_evt
</UL>

<P><STRONG><a name="[2b6]"></a>tuya_ble_sched_init</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, tuya_ble_event.o(i.tuya_ble_sched_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = tuya_ble_sched_init
</UL>
<BR>[Calls]<UL><LI><a href="#[2c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_is_word_aligned_tuya
</UL>
<BR>[Called By]<UL><LI><a href="#[2ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_queue_init
</UL>

<P><STRONG><a name="[10c]"></a>tuya_ble_sdk_init</STRONG> (Thumb, 190 bytes, Stack size 16 bytes, tuya_ble_api.o(i.tuya_ble_sdk_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 596<LI>Call Chain = tuya_ble_sdk_init &rArr; tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_init
<LI><a href="#[2ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_init
<LI><a href="#[29f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump_empty
<LI><a href="#[2cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_set_device_version
<LI><a href="#[2ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_init
<LI><a href="#[2a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_set
<LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
</UL>
<BR>[Called By]<UL><LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_sdk_init
</UL>

<P><STRONG><a name="[2cb]"></a>tuya_ble_set_device_version</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, tuya_ble_data_handler.o(i.tuya_ble_set_device_version))
<BR><BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
</UL>

<P><STRONG><a name="[2ca]"></a>tuya_ble_storage_init</STRONG> (Thumb, 68 bytes, Stack size 16 bytes, tuya_ble_storage.o(i.tuya_ble_storage_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 284<LI>Call Chain = tuya_ble_storage_init &rArr; tuya_ble_storage_save_auth_settings &rArr; tuya_ble_nv_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_auth_settings
<LI><a href="#[2cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_init
<LI><a href="#[2ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_load_settings
</UL>
<BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
</UL>

<P><STRONG><a name="[2ce]"></a>tuya_ble_storage_load_settings</STRONG> (Thumb, 190 bytes, Stack size 16 bytes, tuya_ble_storage.o(i.tuya_ble_storage_load_settings))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = tuya_ble_storage_load_settings &rArr; tuya_ble_nv_read &rArr; bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[101]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_read
<LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[28f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sys_settings_crc_ok
<LI><a href="#[162]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;auth_settings_crc_ok
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[2ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_init
</UL>

<P><STRONG><a name="[150]"></a>tuya_ble_storage_save_auth_settings</STRONG> (Thumb, 96 bytes, Stack size 16 bytes, tuya_ble_storage.o(i.tuya_ble_storage_save_auth_settings))
<BR><BR>[Stack]<UL><LI>Max Depth = 268<LI>Call Chain = tuya_ble_storage_save_auth_settings &rArr; tuya_ble_nv_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[163]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_crc32_compute
<LI><a href="#[131]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_write
<LI><a href="#[129]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[2ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_init
</UL>

<P><STRONG><a name="[151]"></a>tuya_ble_storage_save_sys_settings</STRONG> (Thumb, 96 bytes, Stack size 16 bytes, tuya_ble_storage.o(i.tuya_ble_storage_save_sys_settings))
<BR><BR>[Stack]<UL><LI>Max Depth = 268<LI>Call Chain = tuya_ble_storage_save_sys_settings &rArr; tuya_ble_nv_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[163]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_crc32_compute
<LI><a href="#[131]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_write
<LI><a href="#[129]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[2aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_unbond
<LI><a href="#[2bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_pair_req
<LI><a href="#[2be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_device_reset_req
<LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[13d]"></a>tuya_ble_timer_create</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_timer_create))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_timer_create &rArr; bk_timer_create
</UL>
<BR>[Calls]<UL><LI><a href="#[2cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_create
</UL>
<BR>[Called By]<UL><LI><a href="#[13c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_timer_create
</UL>

<P><STRONG><a name="[13f]"></a>tuya_ble_timer_start</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_timer_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[181]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[13e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_timer_start
</UL>

<P><STRONG><a name="[141]"></a>tuya_ble_timer_stop</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_timer_stop))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_timer_stop &rArr; bk_timer_stop &rArr; bk_timer_stop_0
</UL>
<BR>[Calls]<UL><LI><a href="#[183]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_stop
</UL>
<BR>[Called By]<UL><LI><a href="#[140]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_timer_stop
</UL>

<P><STRONG><a name="[2c6]"></a>tuya_ble_uart_common_process</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, tuya_ble_app_uart_common_handler.o(i.tuya_ble_uart_common_process))
<BR><BR>[Called By]<UL><LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
</UL>

<P><STRONG><a name="[2cc]"></a>tuya_ble_uart_init</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_uart_init))
<BR><BR>[Called By]<UL><LI><a href="#[10c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_sdk_init
</UL>

<P><STRONG><a name="[2d1]"></a>tuya_ble_uart_receive_data</STRONG> (Thumb, 126 bytes, Stack size 72 bytes, tuya_ble_api.o(i.tuya_ble_uart_receive_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = tuya_ble_uart_receive_data &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[2a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_send
<LI><a href="#[2d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_data_unpack
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_rx_handler
<LI><a href="#[d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart1_rx_handler
</UL>

<P><STRONG><a name="[145]"></a>tuya_ble_uart_send_data</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, tuya_ble_port_bk3431q.o(i.tuya_ble_uart_send_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_uart_send_data &rArr; bk_uart1_send &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[189]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart1_send
</UL>
<BR>[Called By]<UL><LI><a href="#[144]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_uart_send_data
<LI><a href="#[2b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_handle_uart_cmd_evt
</UL>

<P><STRONG><a name="[21a]"></a>tuya_ble_utc_sec_2_mytime</STRONG> (Thumb, 126 bytes, Stack size 24 bytes, tuya_ble_unix_time.o(i.tuya_ble_utc_sec_2_mytime))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = tuya_ble_utc_sec_2_mytime &rArr; applib_dt_dayindex
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[153]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_last_day_of_mon
<LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_is_leap_year
<LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_dayindex
</UL>
<BR>[Called By]<UL><LI><a href="#[219]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_calculate_T2_T3
</UL>

<P><STRONG><a name="[2c7]"></a>tuya_sched_execute</STRONG> (Thumb, 60 bytes, Stack size 16 bytes, tuya_ble_event.o(i.tuya_sched_execute))
<BR><BR>[Stack]<UL><LI>Max Depth = 1192<LI>Call Chain = tuya_sched_execute &rArr; tuya_ble_event_process &rArr; tuya_ble_evt_process &rArr; tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>
<BR>[Called By]<UL><LI><a href="#[24c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_main_tasks_exec
</UL>

<P><STRONG><a name="[137]"></a>ty_string_op_hex2hexstr</STRONG> (Thumb, 48 bytes, Stack size 20 bytes, cpt_string_op.o(i.ty_string_op_hex2hexstr))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = ty_string_op_hex2hexstr &rArr; ty_string_op_int2hex
</UL>
<BR>[Calls]<UL><LI><a href="#[2d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_int2hex
</UL>
<BR>[Called By]<UL><LI><a href="#[136]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_string_op_hex2hexstr
</UL>

<P><STRONG><a name="[2d3]"></a>ty_string_op_hex2int</STRONG> (Thumb, 152 bytes, Stack size 4 bytes, cpt_string_op.o(i.ty_string_op_hex2int))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = ty_string_op_hex2int
</UL>
<BR>[Calls]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[13b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_intstr2int
<LI><a href="#[139]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_hexstr2hex
</UL>

<P><STRONG><a name="[139]"></a>ty_string_op_hexstr2hex</STRONG> (Thumb, 54 bytes, Stack size 16 bytes, cpt_string_op.o(i.ty_string_op_hexstr2hex))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = ty_string_op_hexstr2hex &rArr; ty_string_op_hex2int
</UL>
<BR>[Calls]<UL><LI><a href="#[2d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_hex2int
</UL>
<BR>[Called By]<UL><LI><a href="#[138]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_string_op_hexstr2hex
</UL>

<P><STRONG><a name="[2d2]"></a>ty_string_op_int2hex</STRONG> (Thumb, 94 bytes, Stack size 4 bytes, cpt_string_op.o(i.ty_string_op_int2hex))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = ty_string_op_int2hex
</UL>
<BR>[Calls]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_hex2hexstr
</UL>

<P><STRONG><a name="[13b]"></a>ty_string_op_intstr2int</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, cpt_string_op.o(i.ty_string_op_intstr2int))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = ty_string_op_intstr2int &rArr; ty_string_op_hex2int
</UL>
<BR>[Calls]<UL><LI><a href="#[2d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ty_string_op_hex2int
</UL>
<BR>[Called By]<UL><LI><a href="#[13a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_string_op_intstr2int
</UL>

<P><STRONG><a name="[18c]"></a>uart2_cb_register</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, uart.o(i.uart2_cb_register))
<BR><BR>[Called By]<UL><LI><a href="#[18a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart2_init
</UL>

<P><STRONG><a name="[18b]"></a>uart2_init</STRONG> (Thumb, 156 bytes, Stack size 8 bytes, uart.o(i.uart2_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = uart2_init
</UL>
<BR>[Called By]<UL><LI><a href="#[18a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart2_init
</UL>

<P><STRONG><a name="[a3]"></a>uart2_isr</STRONG> (Thumb, 116 bytes, Stack size 24 bytes, uart.o(i.uart2_isr))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = uart2_isr
</UL>
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Exception
</UL>

<P><STRONG><a name="[32]"></a>uart2_printf</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, uart.o(i.uart2_printf))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = uart2_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[2d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_putchar
<LI><a href="#[2d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vsprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[1b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_port_output
<LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_fff0_msg_dflt_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rw_main)
</UL>
<P><STRONG><a name="[2d5]"></a>uart2_putchar</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, uart.o(i.uart2_putchar))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = uart2_putchar
</UL>
<BR>[Called By]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_printf
</UL>

<P><STRONG><a name="[188]"></a>uart_cb_register</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, uart.o(i.uart_cb_register))
<BR><BR>[Called By]<UL><LI><a href="#[186]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart1_init
</UL>

<P><STRONG><a name="[30]"></a>uart_clear_rxfifo</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, uart.o(i.uart_clear_rxfifo))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = uart_clear_rxfifo
</UL>
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rom_env_init)
</UL>
<P><STRONG><a name="[23d]"></a>uart_finish_transfers</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, uart.o(i.uart_finish_transfers))
<BR><BR>[Called By]<UL><LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;platform_reset
</UL>

<P><STRONG><a name="[39]"></a>uart_flow_off</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, uart.o(i.uart_flow_off))
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rwip_eif_api_init)
</UL>
<P><STRONG><a name="[38]"></a>uart_flow_on</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, uart.o(i.uart_flow_on))
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rwip_eif_api_init)
</UL>
<P><STRONG><a name="[187]"></a>uart_init</STRONG> (Thumb, 156 bytes, Stack size 8 bytes, uart.o(i.uart_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = uart_init
</UL>
<BR>[Called By]<UL><LI><a href="#[186]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart1_init
</UL>

<P><STRONG><a name="[a2]"></a>uart_isr</STRONG> (Thumb, 226 bytes, Stack size 24 bytes, uart.o(i.uart_isr))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = uart_isr &rArr; pn9_test_process &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
</UL>
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IRQ_Exception
</UL>

<P><STRONG><a name="[31]"></a>uart_printf</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, uart.o(i.uart_printf))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = uart_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_putchar
<LI><a href="#[2d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vsprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_fcc_enter
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rw_main)
</UL>
<P><STRONG><a name="[a9]"></a>uart_putchar</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, uart.o(i.uart_putchar))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = uart_putchar
</UL>
<BR>[Called By]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_printf
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Stack_Integrity_Check
</UL>

<P><STRONG><a name="[36]"></a>uart_read</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, uart.o(i.uart_read))
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rwip_eif_api_init)
</UL>
<P><STRONG><a name="[7c]"></a>uart_send</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, uart.o(i.uart_send))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = uart_send
</UL>
<BR>[Called By]<UL><LI><a href="#[189]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_uart1_send
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pn9_test_process
</UL>

<P><STRONG><a name="[37]"></a>uart_write</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, uart.o(i.uart_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = uart_write
</UL>
<BR>[Address Reference Count : 1]<UL><LI> arch_main.o(i.rwip_eif_api_init)
</UL>
<P><STRONG><a name="[1cc]"></a>udi_exchange_fdata_to_adjoining_next_sector</STRONG> (Thumb, 102 bytes, Stack size 56 bytes, flash.o(i.udi_exchange_fdata_to_adjoining_next_sector))
<BR><BR>[Stack]<UL><LI>Max Depth = 188<LI>Call Chain = udi_exchange_fdata_to_adjoining_next_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
<LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read
<LI><a href="#[1ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase_sector
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase
</UL>

<P><STRONG><a name="[1cd]"></a>udi_exchange_fdata_to_adjoining_previous_sector</STRONG> (Thumb, 100 bytes, Stack size 56 bytes, flash.o(i.udi_exchange_fdata_to_adjoining_previous_sector))
<BR><BR>[Stack]<UL><LI>Max Depth = 188<LI>Call Chain = udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_write
<LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_read
<LI><a href="#[1ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase_sector
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;flash_erase
</UL>

<P><STRONG><a name="[242]"></a>vTuyaPortFree</STRONG> (Thumb, 54 bytes, Stack size 16 bytes, tuya_ble_heap.o(i.vTuyaPortFree))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[247]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prvInsertBlockIntoFreeList
</UL>
<BR>[Called By]<UL><LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[194]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;release_str
<LI><a href="#[1a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf
</UL>

<P><STRONG><a name="[23e]"></a>wdt_enable</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, wdt.o(i.wdt_enable))
<BR><BR>[Called By]<UL><LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;platform_reset
<LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[18d]"></a>wdt_feed</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, wdt.o(i.wdt_feed))
<BR><BR>[Called By]<UL><LI><a href="#[172]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_wdt_feed
</UL>
<P>
<H3>
Local Symbols
</H3>
<P><STRONG><a name="[1eb]"></a>open_meth_creat_handler</STRONG> (Thumb, 540 bytes, Stack size 32 bytes, lock_dp_parser.o(i.open_meth_creat_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 436<LI>Call Chain = open_meth_creat_handler &rArr; lock_hard_save_in_local_flash &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[206]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_creat_sub_report_with_delay
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_with_data
<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
<LI><a href="#[212]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save_in_local_flash
<LI><a href="#[213]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_get_hardid
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1ec]"></a>open_meth_delete_handler</STRONG> (Thumb, 184 bytes, Stack size 32 bytes, lock_dp_parser.o(i.open_meth_delete_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 392<LI>Call Chain = open_meth_delete_handler &rArr; lock_hard_delete_all_by_memberid &rArr; lock_hardid_load_by_memberid &rArr; lock_hard_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[208]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete_all_by_memberid
<LI><a href="#[207]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete
<LI><a href="#[20b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_finger_delete
<LI><a href="#[20c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_face_delete
<LI><a href="#[20a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_doorcard_delete
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1ee]"></a>open_meth_freeze_or_unfreeze_handler</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, lock_dp_parser.o(i.open_meth_freeze_or_unfreeze_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 396<LI>Call Chain = open_meth_freeze_or_unfreeze_handler &rArr; lock_hard_freezeorunfreeze &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[20d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_freezeorunfreeze
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1ed]"></a>open_meth_modify_handler</STRONG> (Thumb, 152 bytes, Stack size 24 bytes, lock_dp_parser.o(i.open_meth_modify_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 436<LI>Call Chain = open_meth_modify_handler &rArr; lock_hard_modify_all_by_memberid &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[211]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_in_local_flash
<LI><a href="#[210]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_all_by_memberid
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1f0]"></a>open_meth_sync_handler</STRONG> (Thumb, 368 bytes, Stack size 80 bytes, lock_dp_parser.o(i.open_meth_sync_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 328<LI>Call Chain = open_meth_sync_handler &rArr; lock_hard_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[203]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_load
<LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_crc16_compute
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1f1]"></a>open_meth_sync_new_handler</STRONG> (Thumb, 120 bytes, Stack size 24 bytes, lock_dp_parser.o(i.open_meth_sync_new_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 336<LI>Call Chain = open_meth_sync_new_handler &rArr; lock_open_meth_sync_new_report &rArr; lock_hard_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_meth_sync_new_report
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1fa]"></a>open_with_nopwd_remote_handler</STRONG> (Thumb, 294 bytes, Stack size 64 bytes, lock_dp_parser.o(i.open_with_nopwd_remote_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 396<LI>Call Chain = open_with_nopwd_remote_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memcmp
<LI><a href="#[1f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_record_report_with_delay
<LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
<LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[220]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_with_nopwd_remote
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1f9]"></a>open_with_nopwd_remote_setkey_handler</STRONG> (Thumb, 130 bytes, Stack size 40 bytes, lock_dp_parser.o(i.open_with_nopwd_remote_setkey_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 372<LI>Call Chain = open_with_nopwd_remote_setkey_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1f6]"></a>temp_pw_creat_handler</STRONG> (Thumb, 94 bytes, Stack size 24 bytes, lock_dp_parser.o(i.temp_pw_creat_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 428<LI>Call Chain = temp_pw_creat_handler &rArr; lock_hard_save_in_local_flash &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[212]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_save_in_local_flash
<LI><a href="#[213]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_get_hardid
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1f7]"></a>temp_pw_delete_handler</STRONG> (Thumb, 80 bytes, Stack size 24 bytes, lock_dp_parser.o(i.temp_pw_delete_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 276<LI>Call Chain = temp_pw_delete_handler &rArr; lock_hard_delete &rArr; app_port_nv_del &rArr; sf_nv_delete &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[207]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_delete
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1f8]"></a>temp_pw_modify_handler</STRONG> (Thumb, 80 bytes, Stack size 24 bytes, lock_dp_parser.o(i.temp_pw_modify_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 420<LI>Call Chain = temp_pw_modify_handler &rArr; lock_hard_modify_in_local_flash &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[211]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_modify_in_local_flash
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[1ef]"></a>user_freeze_or_unfreeze_handler</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, lock_dp_parser.o(i.user_freeze_or_unfreeze_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 412<LI>Call Chain = user_freeze_or_unfreeze_handler &rArr; lock_hard_freezeorunfreeze_all_by_memberid &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[20f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_freezeorunfreeze_all_by_memberid
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
</UL>

<P><STRONG><a name="[16]"></a>app_active_report_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.app_active_report_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = app_active_report_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[14]"></a>app_test_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.app_test_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = app_test_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[15]"></a>app_test_reset_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.app_test_reset_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = app_test_reset_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[11]"></a>bonding_conn_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.bonding_conn_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = bonding_conn_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[13]"></a>conn_monitor_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.conn_monitor_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = conn_monitor_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[f]"></a>conn_param_update_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.conn_param_update_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = conn_param_update_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[10]"></a>delay_report_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.delay_report_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = delay_report_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[17]"></a>reset_with_disconn2_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.reset_with_disconn2_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = reset_with_disconn2_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[12]"></a>reset_with_disconn_outtime_cb</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, lock_timer.o(i.reset_with_disconn_outtime_cb))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = reset_with_disconn_outtime_cb &rArr; app_common_evt_send_only_evt &rArr; app_port_malloc &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
</UL>
<BR>[Address Reference Count : 1]<UL><LI> lock_timer.o(i.lock_timer_creat)
</UL>
<P><STRONG><a name="[aa]"></a>TOTP</STRONG> (Thumb, 84 bytes, Stack size 40 bytes, lock_dynamic_pwd.o(i.TOTP))
<BR><BR>[Stack]<UL><LI>Max Depth = 832<LI>Call Chain = TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2d
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HMAC_SHA1
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pow (via BLX)
</UL>
<BR>[Called By]<UL><LI><a href="#[1fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;verify_dynamic_pwd_token
</UL>

<P><STRONG><a name="[1e0]"></a>get_timer_string</STRONG> (Thumb, 102 bytes, Stack size 32 bytes, lock_dynamic_pwd.o(i.get_timer_string))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = get_timer_string &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen
<LI><a href="#[1af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2snprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[1fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;verify_dynamic_pwd_token
</UL>

<P><STRONG><a name="[1fd]"></a>verify_dynamic_pwd_token</STRONG> (Thumb, 254 bytes, Stack size 88 bytes, lock_dynamic_pwd.o(i.verify_dynamic_pwd_token))
<BR><BR>[Stack]<UL><LI>Max Depth = 920<LI>Call Chain = verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[1e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_timer_string
<LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TOTP
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen
</UL>
<BR>[Called By]<UL><LI><a href="#[1fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dynamic_pwd_verify
</UL>

<P><STRONG><a name="[1e5]"></a>is_offline_pwd_exist</STRONG> (Thumb, 82 bytes, Stack size 40 bytes, lock_offline_pwd.o(i.is_offline_pwd_exist))
<BR><BR>[Stack]<UL><LI>Max Depth = 288<LI>Call Chain = is_offline_pwd_exist &rArr; lock_offline_pwd_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[1e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_load
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
</UL>

<P><STRONG><a name="[219]"></a>lock_offline_pwd_calculate_T2_T3</STRONG> (Thumb, 268 bytes, Stack size 64 bytes, lock_offline_pwd.o(i.lock_offline_pwd_calculate_T2_T3))
<BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = lock_offline_pwd_calculate_T2_T3 &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[121]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_get_timestamp
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[21a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_utc_sec_2_mytime
<LI><a href="#[126]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_num_array_2_int
</UL>
<BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
</UL>

<P><STRONG><a name="[21b]"></a>lock_offline_pwd_clear</STRONG> (Thumb, 270 bytes, Stack size 48 bytes, lock_offline_pwd.o(i.lock_offline_pwd_clear))
<BR><BR>[Stack]<UL><LI>Max Depth = 388<LI>Call Chain = lock_offline_pwd_clear &rArr; lock_offline_pwd_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[21c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_save
<LI><a href="#[1e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_load
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
</UL>

<P><STRONG><a name="[21d]"></a>lock_offline_pwd_find</STRONG> (Thumb, 408 bytes, Stack size 104 bytes, lock_offline_pwd.o(i.lock_offline_pwd_find))
<BR><BR>[Stack]<UL><LI>Max Depth = 352<LI>Call Chain = lock_offline_pwd_find &rArr; lock_offline_pwd_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[21e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_storage_calculate_T2_T3
<LI><a href="#[1e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_load
<LI><a href="#[fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uwrite4
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
</UL>

<P><STRONG><a name="[1e6]"></a>lock_offline_pwd_load</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, lock_offline_pwd.o(i.lock_offline_pwd_load))
<BR><BR>[Stack]<UL><LI>Max Depth = 248<LI>Call Chain = lock_offline_pwd_load &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
</UL>
<BR>[Called By]<UL><LI><a href="#[21d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_find
<LI><a href="#[21b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_clear
<LI><a href="#[1e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;is_offline_pwd_exist
</UL>

<P><STRONG><a name="[21c]"></a>lock_offline_pwd_save</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, lock_offline_pwd.o(i.lock_offline_pwd_save))
<BR><BR>[Stack]<UL><LI>Max Depth = 340<LI>Call Chain = lock_offline_pwd_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
</UL>
<BR>[Called By]<UL><LI><a href="#[216]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_verify
<LI><a href="#[21b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_clear
</UL>

<P><STRONG><a name="[21e]"></a>lock_offline_pwd_storage_calculate_T2_T3</STRONG> (Thumb, 96 bytes, Stack size 40 bytes, lock_offline_pwd.o(i.lock_offline_pwd_storage_calculate_T2_T3))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = lock_offline_pwd_storage_calculate_T2_T3
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[21d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_pwd_find
</UL>

<P><STRONG><a name="[221]"></a>lock_test_mode_exit</STRONG> (Thumb, 30 bytes, Stack size 16 bytes, lock_test.o(i.lock_test_mode_exit))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = lock_test_mode_exit &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
</UL>

<P><STRONG><a name="[222]"></a>lock_test_rsp</STRONG> (Thumb, 76 bytes, Stack size 16 bytes, lock_test.o(i.lock_test_rsp))
<BR><BR>[Stack]<UL><LI>Max Depth = 676<LI>Call Chain = lock_test_rsp &rArr; tuya_ble_lock_test_rsp &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[223]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_lock_test_rsp
<LI><a href="#[10d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_check_sum
</UL>
<BR>[Called By]<UL><LI><a href="#[1be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_test_process
</UL>

<P><STRONG><a name="[a]"></a>app_common_evt_process</STRONG> (Thumb, 164 bytes, Stack size 8 bytes, app_common.o(i.app_common_evt_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 684<LI>Call Chain = app_common_evt_process &rArr; delay_report_outtime_cb_handler &rArr; delay_report_outtime_handler &rArr; lock_open_record_report &rArr; lock_evt_save &rArr; lock_evtid_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_with_disconn_outtime_cb_handler
<LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_with_disconn2_outtime_cb_handler
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_stop
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_report_outtime_cb_handler
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_param_update_outtime_cb_handler
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;conn_monitor_outtime_cb_handler
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bonding_conn_outtime_cb_handler
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_reset_outtime_cb_handler
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_outtime_cb_handler
<LI><a href="#[c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_outtime_cb_handler
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_finger_start_reg
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_finger_cancel_reg
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_face_start_reg
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_face_cancel_reg
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_doorcard_start_reg
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_hard_doorcard_cancel_reg
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_free
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_disconn_handler
<LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_finished_and_disconnect_handler
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_common.o(i.app_common_evt_send)
</UL>
<P><STRONG><a name="[b]"></a>app_common_tuya_ble_sdk_callback</STRONG> (Thumb, 196 bytes, Stack size 24 bytes, app_common.o(i.app_common_tuya_ble_sdk_callback))
<BR><BR>[Stack]<UL><LI>Max Depth = 492<LI>Call Chain = app_common_tuya_ble_sdk_callback &rArr; lock_dp_parser_handler &rArr; open_meth_modify_handler &rArr; lock_hard_modify_all_by_memberid &rArr; lock_hard_save &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_active_report_stop
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_stop
<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_offline_evt_report
<LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_open_meth_sync_new_report
<LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_dp_parser_handler
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_factory_handler
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_update_timestamp
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_common.o(i.app_common_init)
</UL>
<P><STRONG><a name="[ec]"></a>app_ota_data_handler</STRONG> (Thumb, 380 bytes, Stack size 48 bytes, app_ota.o(i.app_ota_data_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 224<LI>Call Chain = app_ota_data_handler &rArr; app_ota_rsp &rArr; app_port_ota_rsp &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_crc16_compute
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_write
<LI><a href="#[f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_crc32_compute
<LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_rsp
<LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_exit
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
</UL>

<P><STRONG><a name="[f4]"></a>app_ota_end_handler</STRONG> (Thumb, 352 bytes, Stack size 56 bytes, app_ota.o(i.app_ota_end_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 316<LI>Call Chain = app_ota_end_handler &rArr; app_port_nv_erase &rArr; tuya_ble_nv_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_read
<LI><a href="#[f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_erase
<LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_rsp
<LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_get_crc32_in_flash
<LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_exit
<LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_del
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
</UL>

<P><STRONG><a name="[ee]"></a>app_ota_exit</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, app_ota.o(i.app_ota_exit))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = app_ota_exit &rArr; lock_timer_start &rArr; app_port_timer_start &rArr; tuya_ble_timer_start &rArr; bk_timer_start &rArr; bk_timer_start_0
</UL>
<BR>[Calls]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_disconn_handler
</UL>

<P><STRONG><a name="[fb]"></a>app_ota_file_info_handler</STRONG> (Thumb, 352 bytes, Stack size 72 bytes, app_ota.o(i.app_ota_file_info_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 312<LI>Call Chain = app_ota_file_info_handler &rArr; app_port_nv_get &rArr; sf_nv_read &rArr; nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memcmp
<LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_rsp
<LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_exit
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
<LI><a href="#[fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uwrite4
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
</UL>

<P><STRONG><a name="[ff]"></a>app_ota_file_offset_handler</STRONG> (Thumb, 232 bytes, Stack size 64 bytes, app_ota.o(i.app_ota_file_offset_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 396<LI>Call Chain = app_ota_file_offset_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memcmp
<LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_rsp
<LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_get_crc32_in_flash
<LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_exit
<LI><a href="#[fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uwrite4
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uread4
</UL>
<BR>[Called By]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
</UL>

<P><STRONG><a name="[f6]"></a>app_ota_get_crc32_in_flash</STRONG> (Thumb, 90 bytes, Stack size 24 bytes, app_ota.o(i.app_ota_get_crc32_in_flash))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = app_ota_get_crc32_in_flash &rArr; tuya_ble_nv_read &rArr; bk_flash_read &rArr; flash_read &rArr; flash_read_data
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[101]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_nv_read
<LI><a href="#[f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_crc32_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
</UL>

<P><STRONG><a name="[103]"></a>app_ota_req_handler</STRONG> (Thumb, 220 bytes, Stack size 40 bytes, app_ota.o(i.app_ota_req_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 300<LI>Call Chain = app_ota_req_handler &rArr; app_port_nv_erase &rArr; tuya_ble_nv_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[104]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_conn_param_update
<LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_reverse_byte
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_exit_critical
<LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_enter_critical
<LI><a href="#[f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_erase
<LI><a href="#[105]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ble_conn_evt_ext
<LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_rsp
<LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_exit
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
<LI><a href="#[fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uwrite4
</UL>
<BR>[Called By]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_handler
</UL>

<P><STRONG><a name="[ed]"></a>app_ota_rsp</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_ota.o(i.app_ota_rsp))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = app_ota_rsp &rArr; app_port_ota_rsp &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[106]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_ota_rsp
</UL>
<BR>[Called By]<UL><LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_req_handler
<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_offset_handler
<LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_file_info_handler
<LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_end_handler
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_ota_data_handler
</UL>

<P><STRONG><a name="[149]"></a>app_test_process</STRONG> (Thumb, 202 bytes, Stack size 112 bytes, app_test.o(i.app_test_process))
<BR><BR>[Stack]<UL><LI>Max Depth = 476<LI>Call Chain = app_test_process &rArr; app_test_write_auth_info_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_timer_start
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_rsp
<LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_query_info_handler
<LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy4
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen
<LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2sprintf
</UL>
<BR>[Called By]<UL><LI><a href="#[148]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_pre_process
</UL>

<P><STRONG><a name="[14c]"></a>app_test_query_info_handler</STRONG> (Thumb, 444 bytes, Stack size 32 bytes, app_test.o(i.app_test_query_info_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 364<LI>Call Chain = app_test_query_info_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memcmp
<LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_get
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_rsp
</UL>
<BR>[Called By]<UL><LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
</UL>

<P><STRONG><a name="[14f]"></a>app_test_rsp</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, app_test.o(i.app_test_rsp))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = app_test_rsp &rArr; app_port_uart_send_data &rArr; tuya_ble_uart_send_data &rArr; bk_uart1_send &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[144]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_uart_send_data
<LI><a href="#[10d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_check_sum
</UL>
<BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_write_auth_info_handler
<LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_query_info_handler
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
</UL>

<P><STRONG><a name="[14b]"></a>app_test_write_auth_info_handler</STRONG> (Thumb, 132 bytes, Stack size 32 bytes, app_test.o(i.app_test_write_auth_info_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 364<LI>Call Chain = app_test_write_auth_info_handler &rArr; app_port_nv_set &rArr; sf_nv_write &rArr;  sf_nv_write (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_nv_set
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_factory_handler
<LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_auth_settings
<LI><a href="#[138]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_string_op_hexstr2hex
<LI><a href="#[134]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_port_set_bt_mac_addr
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_rsp
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strlen
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_test_process
</UL>

<P><STRONG><a name="[162]"></a>auth_settings_crc_ok</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, tuya_ble_storage.o(i.auth_settings_crc_ok))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = auth_settings_crc_ok &rArr; tuya_ble_crc32_compute
</UL>
<BR>[Calls]<UL><LI><a href="#[163]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_crc32_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[2ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_load_settings
</UL>

<P><STRONG><a name="[28f]"></a>sys_settings_crc_ok</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, tuya_ble_storage.o(i.sys_settings_crc_ok))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = sys_settings_crc_ok &rArr; tuya_ble_crc32_compute
</UL>
<BR>[Calls]<UL><LI><a href="#[163]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_crc32_compute
</UL>
<BR>[Called By]<UL><LI><a href="#[2ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_load_settings
</UL>

<P><STRONG><a name="[28d]"></a>addr_is_valid</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, sf_nv.o(i.addr_is_valid))
<BR><BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_read
<LI><a href="#[128]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_delete
</UL>

<P><STRONG><a name="[236]"></a>nv_erase</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, sf_nv.o(i.nv_erase))
<BR><BR>[Stack]<UL><LI>Max Depth = 260<LI>Call Chain = nv_erase &rArr; sf_port_flash_erase &rArr; bk_flash_erase &rArr; flash_erase &rArr; udi_exchange_fdata_to_adjoining_previous_sector &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[130]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_port_flash_erase
</UL>
<BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
</UL>

<P><STRONG><a name="[237]"></a>nv_read</STRONG> (Thumb, 106 bytes, Stack size 40 bytes, sf_nv.o(i.nv_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = nv_read &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[239]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_port_flash_read
<LI><a href="#[238]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_malloc
<LI><a href="#[23a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_free
</UL>
<BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_read
<LI><a href="#[12d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_init
<LI><a href="#[128]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_delete
<LI><a href="#[28e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;update_area_header
</UL>

<P><STRONG><a name="[23b]"></a>nv_write</STRONG> (Thumb, 112 bytes, Stack size 40 bytes, sf_nv.o(i.nv_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 204<LI>Call Chain = nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[23c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_port_flash_write
<LI><a href="#[238]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_malloc
<LI><a href="#[23a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_free
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[128]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_delete
<LI><a href="#[28e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;update_area_header
</UL>

<P><STRONG><a name="[28c]"></a>sf_next_unit_addr</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, sf_nv.o(i.sf_next_unit_addr))
<BR><BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_read
<LI><a href="#[128]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_delete
</UL>

<P><STRONG><a name="[28e]"></a>update_area_header</STRONG> (Thumb, 52 bytes, Stack size 24 bytes, sf_nv.o(i.update_area_header))
<BR><BR>[Stack]<UL><LI>Max Depth = 228<LI>Call Chain = update_area_header &rArr; nv_write &rArr; sf_port_flash_write &rArr; bk_flash_write &rArr; flash_write &rArr; flash_write_data &rArr; flash_wp_NONE &rArr; flash_write_sr
</UL>
<BR>[Calls]<UL><LI><a href="#[23b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_write
<LI><a href="#[237]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;nv_read
</UL>
<BR>[Called By]<UL><LI><a href="#[12e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_write
<LI><a href="#[12d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sf_nv_init
</UL>

<P><STRONG><a name="[1b7]"></a>get_fmt_enabled</STRONG> (Thumb, 70 bytes, Stack size 32 bytes, elog.o(i.get_fmt_enabled))
<BR><BR>[Stack]<UL><LI>Max Depth = 32 + In Cycle
<LI>Call Chain = get_fmt_enabled &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>

<P><STRONG><a name="[d]"></a>uart1_rx_handler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, bk_uart.o(i.uart1_rx_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = uart1_rx_handler &rArr; tuya_ble_uart_receive_data &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
</UL>
<BR>[Address Reference Count : 1]<UL><LI> bk_uart.o(i.bk_uart1_init)
</UL>
<P><STRONG><a name="[e]"></a>uart2_rx_handler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, bk_uart.o(i.uart2_rx_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = uart2_rx_handler &rArr; tuya_ble_uart_receive_data &rArr; tuya_ble_malloc &rArr; pvTuyaPortMalloc &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
</UL>
<BR>[Address Reference Count : 1]<UL><LI> bk_uart.o(i.bk_uart2_init)
</UL>
<P><STRONG><a name="[a8]"></a>Stack_Integrity_Check</STRONG> (Thumb, 84 bytes, Stack size 8 bytes, arch_main.o(i.Stack_Integrity_Check))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Stack_Integrity_Check &rArr; uart_putchar
</UL>
<BR>[Calls]<UL><LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart_putchar
</UL>
<BR>[Called By]<UL><LI><a href="#[24a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rw_app_enter
</UL>

<P><STRONG><a name="[1]"></a>Undefined</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_vectors.o(SYS_BOOT))
<BR><BR>[Calls]<UL><LI><a href="#[2d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Undefined_Exception (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> boot_vectors.o(SYS_BOOT)
</UL>
<P><STRONG><a name="[2]"></a>SoftwareInterrupt</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_vectors.o(SYS_BOOT))
<BR><BR>[Calls]<UL><LI><a href="#[2d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SoftwareInterrupt_Exception (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> boot_vectors.o(SYS_BOOT)
</UL>
<P><STRONG><a name="[3]"></a>PrefetchAbort</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_vectors.o(SYS_BOOT))
<BR><BR>[Calls]<UL><LI><a href="#[2d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PrefetchAbort_Exception (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> boot_vectors.o(SYS_BOOT)
</UL>
<P><STRONG><a name="[4]"></a>DataAbort</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_vectors.o(SYS_BOOT))
<BR><BR>[Calls]<UL><LI><a href="#[2d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DataAbort_Exception (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> boot_vectors.o(SYS_BOOT)
</UL>
<P><STRONG><a name="[6]"></a>IRQ_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_vectors.o(SYS_BOOT))
<BR><BR>[Stack]<UL><LI>Max Depth = 96 + Unknown Stack Size
<LI>Call Chain = IRQ_Handler &rArr; SYSirq_IRQ_Handler &rArr; IRQ_Exception &rArr; uart_isr &rArr; pn9_test_process &rArr; uart_send
</UL>
<BR>[Calls]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SYSirq_IRQ_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> boot_vectors.o(SYS_BOOT)
</UL>
<P><STRONG><a name="[5]"></a>sys_reserved</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_vectors.o(SYS_BOOT))
<BR><BR>[Calls]<UL><LI><a href="#[2da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Reserved_Exception (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> boot_vectors.o(SYS_BOOT)
</UL>
<P><STRONG><a name="[7]"></a>FIQ_Handler</STRONG> (ARM, 0 bytes, Stack size unknown bytes, boot_vectors.o(SYS_BOOT))
<BR><BR>[Stack]<UL><LI>Max Depth = 192 + Unknown Stack Size
<LI>Call Chain = FIQ_Handler &rArr; SYSirq_FIQ_Handler &rArr; FIQ_Exception &rArr; rwble_isr &rArr; __aeabi_dmul &rArr; _double_epilogue &rArr; __aeabi_llsr
</UL>
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SYSirq_FIQ_Handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> boot_vectors.o(SYS_BOOT)
</UL>
<P><STRONG><a name="[1d]"></a>rf_force_agc_enable</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, rf_xvr.o(i.rf_force_agc_enable))
<BR>[Address Reference Count : 1]<UL><LI> rf_xvr.o(i.rf_init)
</UL>
<P><STRONG><a name="[1c]"></a>rf_reset</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, rf_xvr.o(i.rf_reset))
<BR>[Address Reference Count : 1]<UL><LI> rf_xvr.o(i.rf_init)
</UL>
<P><STRONG><a name="[18]"></a>rf_rpl_reg_rd</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, rf_xvr.o(i.rf_rpl_reg_rd))
<BR>[Address Reference Count : 1]<UL><LI> rf_xvr.o(i.rf_init)
</UL>
<P><STRONG><a name="[19]"></a>rf_rpl_reg_wr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, rf_xvr.o(i.rf_rpl_reg_wr))
<BR>[Address Reference Count : 1]<UL><LI> rf_xvr.o(i.rf_init)
</UL>
<P><STRONG><a name="[1e]"></a>rf_rssi_convert</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, rf_xvr.o(i.rf_rssi_convert))
<BR>[Address Reference Count : 1]<UL><LI> rf_xvr.o(i.rf_init)
</UL>
<P><STRONG><a name="[1b]"></a>rf_sleep</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, rf_xvr.o(i.rf_sleep))
<BR>[Address Reference Count : 1]<UL><LI> rf_xvr.o(i.rf_init)
</UL>
<P><STRONG><a name="[1a]"></a>rf_txpwr_dbm_get</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, rf_xvr.o(i.rf_txpwr_dbm_get))
<BR>[Address Reference Count : 1]<UL><LI> rf_xvr.o(i.rf_init)
</UL>
<P><STRONG><a name="[243]"></a>prf_itf_get</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, prf.o(i.prf_itf_get))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = prf_itf_get
</UL>
<BR>[Calls]<UL><LI><a href="#[245]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_prf_itf_get
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_init
<LI><a href="#[22]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_create
<LI><a href="#[23]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_cleanup
<LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_add_profile
</UL>

<P><STRONG><a name="[3d]"></a>fff0s_cleanup</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, fff0s.o(i.fff0s_cleanup))
<BR>[Address Reference Count : 1]<UL><LI> fff0s.o(.constdata)
</UL>
<P><STRONG><a name="[3c]"></a>fff0s_create</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, fff0s.o(i.fff0s_create))
<BR>[Address Reference Count : 1]<UL><LI> fff0s.o(.constdata)
</UL>
<P><STRONG><a name="[3b]"></a>fff0s_destroy</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, fff0s.o(i.fff0s_destroy))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = fff0s_destroy
</UL>
<BR>[Calls]<UL><LI><a href="#[1c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_free
</UL>
<BR>[Address Reference Count : 1]<UL><LI> fff0s.o(.constdata)
</UL>
<P><STRONG><a name="[3a]"></a>fff0s_init</STRONG> (Thumb, 164 bytes, Stack size 64 bytes, fff0s.o(i.fff0s_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = fff0s_init
</UL>
<BR>[Calls]<UL><LI><a href="#[1c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;attm_svc_create_db
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[1c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_free
<LI><a href="#[1c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_malloc
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Address Reference Count : 1]<UL><LI> fff0s.o(.constdata)
</UL>
<P><STRONG><a name="[3e]"></a>fff0s_fff1_level_upd_req_handler</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, fff0s_task.o(i.fff0s_fff1_level_upd_req_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = fff0s_fff1_level_upd_req_handler &rArr; fff0s_notify_fff1_lvl &rArr; fff0s_get_att_handle &rArr; prf_env_get
</UL>
<BR>[Calls]<UL><LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[1c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_notify_fff1_lvl
<LI><a href="#[1c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_env_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> fff0s_task.o(.constdata)
</UL>
<P><STRONG><a name="[3f]"></a>gattc_att_info_req_ind_handler</STRONG> (Thumb, 74 bytes, Stack size 40 bytes, fff0s_task.o(i.gattc_att_info_req_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = gattc_att_info_req_ind_handler &rArr; fff0s_get_att_idx &rArr; prf_env_get
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[1c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_get_att_idx
</UL>
<BR>[Address Reference Count : 1]<UL><LI> fff0s_task.o(.constdata)
</UL>
<P><STRONG><a name="[42]"></a>gattc_cmp_evt_handler</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, fff0s_task.o(i.gattc_cmp_evt_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = gattc_cmp_evt_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
<LI><a href="#[1de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_svc_send_data_complete
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
</UL>
<BR>[Address Reference Count : 1]<UL><LI> fff0s_task.o(.constdata)
</UL>
<P><STRONG><a name="[41]"></a>gattc_read_req_ind_handler</STRONG> (Thumb, 138 bytes, Stack size 48 bytes, fff0s_task.o(i.gattc_read_req_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = gattc_read_req_ind_handler &rArr; fff0s_get_att_idx &rArr; prf_env_get
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[1c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_get_att_idx
<LI><a href="#[1c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_env_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> fff0s_task.o(.constdata)
</UL>
<P><STRONG><a name="[40]"></a>gattc_write_req_ind_handler</STRONG> (Thumb, 206 bytes, Stack size 40 bytes, fff0s_task.o(i.gattc_write_req_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = gattc_write_req_ind_handler &rArr; fff0s_get_att_idx &rArr; prf_env_get
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[1c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fff0s_get_att_idx
<LI><a href="#[1c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_env_get
<LI><a href="#[1df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;prf_dst_task_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> fff0s_task.o(.constdata)
</UL>
<P><STRONG><a name="[44]"></a>app_fff0_msg_dflt_handler</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, app_fff0.o(i.app_fff0_msg_dflt_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = app_fff0_msg_dflt_handler &rArr; uart2_printf &rArr; vsprintf
</UL>
<BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;uart2_printf
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_fff0.o(.constdata)
</UL>
<P><STRONG><a name="[45]"></a>fff0s_fff1_level_ntf_cfg_ind_handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, app_fff0.o(i.fff0s_fff1_level_ntf_cfg_ind_handler))
<BR>[Address Reference Count : 1]<UL><LI> app_fff0.o(.constdata)
</UL>
<P><STRONG><a name="[46]"></a>fff1_level_upd_handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, app_fff0.o(i.fff1_level_upd_handler))
<BR>[Address Reference Count : 1]<UL><LI> app_fff0.o(.constdata)
</UL>
<P><STRONG><a name="[47]"></a>fff2_writer_req_handler</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, app_fff0.o(i.fff2_writer_req_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = fff2_writer_req_handler &rArr; bk_svc_receive_data &rArr; tuya_ble_gatt_receive_data &rArr; tuya_ble_event_send &rArr; tuya_ble_message_send &rArr; tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[17c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_svc_receive_data
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_fff0.o(.constdata)
</UL>
<P><STRONG><a name="[48]"></a>appm_msg_handler</STRONG> (Thumb, 78 bytes, Stack size 32 bytes, app_task.o(i.appm_msg_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = appm_msg_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[55]"></a>bk_timer0_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer0_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer0_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[5f]"></a>bk_timer10_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer10_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer10_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[60]"></a>bk_timer11_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer11_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer11_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[61]"></a>bk_timer12_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer12_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer12_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[62]"></a>bk_timer13_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer13_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer13_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[63]"></a>bk_timer14_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer14_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer14_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[64]"></a>bk_timer15_handler</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, app_task.o(i.bk_timer15_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer15_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[65]"></a>bk_timer16_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer16_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer16_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[66]"></a>bk_timer17_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer17_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer17_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[67]"></a>bk_timer18_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer18_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer18_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[68]"></a>bk_timer19_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer19_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer19_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[56]"></a>bk_timer1_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer1_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer1_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[57]"></a>bk_timer2_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer2_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer2_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[58]"></a>bk_timer3_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer3_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer3_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[59]"></a>bk_timer4_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer4_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer4_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[5a]"></a>bk_timer5_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer5_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer5_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[5b]"></a>bk_timer6_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer6_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer6_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[5c]"></a>bk_timer7_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer7_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer7_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[5d]"></a>bk_timer8_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer8_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer8_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[5e]"></a>bk_timer9_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.bk_timer9_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = bk_timer9_handler &rArr; bk_timer_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[17f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_timer_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[4e]"></a>gapc_cmp_evt_handler</STRONG> (Thumb, 128 bytes, Stack size 16 bytes, app_task.o(i.gapc_cmp_evt_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = gapc_cmp_evt_handler &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[4d]"></a>gapc_connection_req_ind_handler</STRONG> (Thumb, 96 bytes, Stack size 24 bytes, app_task.o(i.gapc_connection_req_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = gapc_connection_req_ind_handler &rArr; bk_adv_start &rArr; appm_start_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[164]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_start
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[1d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connected_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[4f]"></a>gapc_disconnect_ind_handler</STRONG> (Thumb, 58 bytes, Stack size 16 bytes, app_task.o(i.gapc_disconnect_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 192<LI>Call Chain = gapc_disconnect_ind_handler &rArr; bk_adv_start &rArr; appm_start_advertising &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;app_common_evt_send_only_evt
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[164]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_start
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[1da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_disconnected_handler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[4b]"></a>gapc_get_dev_info_req_ind_handler</STRONG> (Thumb, 106 bytes, Stack size 16 bytes, app_task.o(i.gapc_get_dev_info_req_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = gapc_get_dev_info_req_ind_handler &rArr; appm_get_dev_name
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[157]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_get_dev_name
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[51]"></a>gapc_le_pkt_size_ind_handler</STRONG> (Thumb, 126 bytes, Stack size 24 bytes, app_task.o(i.gapc_le_pkt_size_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = gapc_le_pkt_size_ind_handler &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[54]"></a>gapc_param_update_req_ind_handler</STRONG> (Thumb, 64 bytes, Stack size 24 bytes, app_task.o(i.gapc_param_update_req_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = gapc_param_update_req_ind_handler &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[52]"></a>gapc_param_updated_ind_handler</STRONG> (Thumb, 74 bytes, Stack size 32 bytes, app_task.o(i.gapc_param_updated_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = gapc_param_updated_ind_handler &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ui2d
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2uiz
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[4c]"></a>gapc_set_dev_info_req_ind_handler</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, app_task.o(i.gapc_set_dev_info_req_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = gapc_set_dev_info_req_ind_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[4a]"></a>gapm_cmp_evt_handler</STRONG> (Thumb, 222 bytes, Stack size 24 bytes, app_task.o(i.gapm_cmp_evt_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 644<LI>Call Chain = gapm_cmp_evt_handler &rArr; lock_common_init &rArr; app_common_init &rArr; app_port_ble_sdk_init &rArr; tuya_ble_sdk_init &rArr; tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
<LI><a href="#[1dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;lock_common_init
<LI><a href="#[164]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_adv_start
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_set
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
<LI><a href="#[1dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_test
<LI><a href="#[1db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;appm_add_svc
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[49]"></a>gapm_device_ready_ind_handler</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, app_task.o(i.gapm_device_ready_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = gapm_device_ready_ind_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_send
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_msg_alloc
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[50]"></a>gapm_profile_added_ind_handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, app_task.o(i.gapm_profile_added_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = gapm_profile_added_ind_handler
</UL>
<BR>[Calls]<UL><LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ke_state_get
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[53]"></a>gattc_mtu_changed_ind_handler</STRONG> (Thumb, 60 bytes, Stack size 24 bytes, app_task.o(i.gattc_mtu_changed_ind_handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = gattc_mtu_changed_ind_handler &rArr; elog_output &rArr;  elog_output (Cycle)
</UL>
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;elog_output
</UL>
<BR>[Address Reference Count : 1]<UL><LI> app_task.o(.constdata)
</UL>
<P><STRONG><a name="[2d0]"></a>tuya_ble_uart_data_unpack</STRONG> (Thumb, 236 bytes, Stack size 24 bytes, tuya_ble_api.o(i.tuya_ble_uart_data_unpack))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_uart_data_unpack
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[2d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_receive_data
</UL>

<P><STRONG><a name="[18e]"></a>ble_data_unpack</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, tuya_ble_data_handler.o(i.ble_data_unpack))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = ble_data_unpack &rArr; trsmitr_recv_pkg_decode
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[18f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;trsmitr_recv_pkg_decode
<LI><a href="#[190]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_trsmitr_subpkg_len
<LI><a href="#[191]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_trsmitr_subpkg
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[2a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commonData_rx_proc
</UL>

<P><STRONG><a name="[2bf]"></a>tuya_ble_handle_ble_factory_test_req</STRONG> (Thumb, 150 bytes, Stack size 40 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_ble_factory_test_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 1112<LI>Call Chain = tuya_ble_handle_ble_factory_test_req &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[29a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_app_production_test_process
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[2c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;check_sum
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2bb]"></a>tuya_ble_handle_dev_infor_req</STRONG> (Thumb, 188 bytes, Stack size 56 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_dev_infor_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 708<LI>Call Chain = tuya_ble_handle_dev_infor_req &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_rand_generator
<LI><a href="#[2c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_pair_rand_clear
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2be]"></a>tuya_ble_handle_device_reset_req</STRONG> (Thumb, 100 bytes, Stack size 40 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_device_reset_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 692<LI>Call Chain = tuya_ble_handle_device_reset_req &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[2aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_device_unbond
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2ba]"></a>tuya_ble_handle_dp_query_req</STRONG> (Thumb, 114 bytes, Stack size 40 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_dp_query_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 692<LI>Call Chain = tuya_ble_handle_dp_query_req &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2b9]"></a>tuya_ble_handle_dp_write_req</STRONG> (Thumb, 178 bytes, Stack size 64 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_dp_write_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 716<LI>Call Chain = tuya_ble_handle_dp_write_req &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[29f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump_empty
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[19f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free_klv_list
<LI><a href="#[19e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;data_2_klvlist
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2b7]"></a>tuya_ble_handle_net_config_info_req</STRONG> (Thumb, 130 bytes, Stack size 56 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_net_config_info_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 708<LI>Call Chain = tuya_ble_handle_net_config_info_req &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2bd]"></a>tuya_ble_handle_ota_req</STRONG> (Thumb, 112 bytes, Stack size 40 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_ota_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = tuya_ble_handle_ota_req &rArr; tuya_ble_cb_event_send &rArr; tuya_ble_inter_event_response &rArr; tuya_ble_free &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2bc]"></a>tuya_ble_handle_pair_req</STRONG> (Thumb, 230 bytes, Stack size 48 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_pair_req))
<BR><BR>[Stack]<UL><LI>Max Depth = 700<LI>Call Chain = tuya_ble_handle_pair_req &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[115]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_get
<LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memcmp
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_storage_save_sys_settings
<LI><a href="#[10b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_gap_disconnect
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[2a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_set
<LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
<LI><a href="#[2c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_monitor_timer_stop
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[2b8]"></a>tuya_ble_handle_unix_time_char_ms_resp</STRONG> (Thumb, 104 bytes, Stack size 32 bytes, tuya_ble_data_handler.o(i.tuya_ble_handle_unix_time_char_ms_resp))
<BR><BR>[Stack]<UL><LI>Max Depth = 200<LI>Call Chain = tuya_ble_handle_unix_time_char_ms_resp &rArr; atoll &rArr; __strtoll &rArr; _strtoull &rArr; __aeabi_lmul &rArr; __aeabi_llsl
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;atoll
</UL>
<BR>[Called By]<UL><LI><a href="#[2b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_evt_process
</UL>

<P><STRONG><a name="[246]"></a>prvHeapInit</STRONG> (Thumb, 60 bytes, Stack size 0 bytes, tuya_ble_heap.o(i.prvHeapInit))
<BR><BR>[Called By]<UL><LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
</UL>

<P><STRONG><a name="[247]"></a>prvInsertBlockIntoFreeList</STRONG> (Thumb, 72 bytes, Stack size 12 bytes, tuya_ble_heap.o(i.prvInsertBlockIntoFreeList))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = prvInsertBlockIntoFreeList
</UL>
<BR>[Called By]<UL><LI><a href="#[242]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;vTuyaPortFree
<LI><a href="#[193]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;pvTuyaPortMalloc
</UL>

<P><STRONG><a name="[2b5]"></a>tuya_ble_handle_connect_change_evt</STRONG> (Thumb, 86 bytes, Stack size 24 bytes, tuya_ble_main.o(i.tuya_ble_handle_connect_change_evt))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = tuya_ble_handle_connect_change_evt &rArr; tuya_ble_cb_event_send &rArr; tuya_ble_inter_event_response &rArr; tuya_ble_free &rArr; vTuyaPortFree &rArr; tuya_ble_device_exit_critical &rArr; bk_exit_critical
</UL>
<BR>[Calls]<UL><LI><a href="#[29b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_cb_event_send
<LI><a href="#[2c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_reset_ble_sn
<LI><a href="#[2c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_pair_rand_clear
<LI><a href="#[2a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_status_set
<LI><a href="#[2c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_connect_monitor_timer_start
</UL>
<BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[2af]"></a>tuya_ble_handle_device_info_update_evt</STRONG> (Thumb, 48 bytes, Stack size 16 bytes, tuya_ble_main.o(i.tuya_ble_handle_device_info_update_evt))
<BR><BR>[Stack]<UL><LI>Max Depth = 596<LI>Call Chain = tuya_ble_handle_device_info_update_evt &rArr; tuya_ble_adv_change &rArr; tuya_ble_device_id_encrypt &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[293]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_adv_change
</UL>
<BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[2b2]"></a>tuya_ble_handle_dp_data_with_time_reported_evt</STRONG> (Thumb, 98 bytes, Stack size 16 bytes, tuya_ble_main.o(i.tuya_ble_handle_dp_data_with_time_reported_evt))
<BR><BR>[Stack]<UL><LI>Max Depth = 668<LI>Call Chain = tuya_ble_handle_dp_data_with_time_reported_evt &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[2b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_pair_rand_valid_get
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[2b1]"></a>tuya_ble_handle_ota_response_evt</STRONG> (Thumb, 76 bytes, Stack size 16 bytes, tuya_ble_main.o(i.tuya_ble_handle_ota_response_evt))
<BR><BR>[Stack]<UL><LI>Max Depth = 668<LI>Call Chain = tuya_ble_handle_ota_response_evt &rArr; tuya_ble_commData_send &rArr; tuya_ble_encryption &rArr; tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8 (via BLX)
<LI><a href="#[2b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_pair_rand_valid_get
<LI><a href="#[29d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_commData_send
</UL>
<BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[2b3]"></a>tuya_ble_handle_uart_cmd_evt</STRONG> (Thumb, 140 bytes, Stack size 16 bytes, tuya_ble_main.o(i.tuya_ble_handle_uart_cmd_evt))
<BR><BR>[Stack]<UL><LI>Max Depth = 1088<LI>Call Chain = tuya_ble_handle_uart_cmd_evt &rArr; tuya_ble_app_production_test_process &rArr; app_port_factory_test_process &rArr; factory_test_process &rArr; lock_hard_uart_simulate &rArr; lock_dynamic_pwd_verify &rArr; verify_dynamic_pwd_token &rArr; TOTP &rArr; HMAC_SHA1 &rArr; SHA1 &rArr; SHA1Result &rArr; SHA1PadMessage &rArr; SHA1ProcessMessageBlock
</UL>
<BR>[Calls]<UL><LI><a href="#[29a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_app_production_test_process
<LI><a href="#[145]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_send_data
<LI><a href="#[125]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_malloc
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_free
<LI><a href="#[29f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bk_log_hexdump_empty
<LI><a href="#[2c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;check_sum
<LI><a href="#[2c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_uart_common_process
</UL>
<BR>[Called By]<UL><LI><a href="#[2ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_event_process
</UL>

<P><STRONG><a name="[152]"></a>applib_dt_dayindex</STRONG> (Thumb, 120 bytes, Stack size 24 bytes, tuya_ble_unix_time.o(i.applib_dt_dayindex))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = applib_dt_dayindex
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[153]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[21a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_utc_sec_2_mytime
</UL>

<P><STRONG><a name="[154]"></a>applib_dt_is_leap_year</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, tuya_ble_unix_time.o(i.applib_dt_is_leap_year))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = applib_dt_is_leap_year
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[21a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_utc_sec_2_mytime
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_last_day_of_mon
</UL>

<P><STRONG><a name="[155]"></a>applib_dt_last_day_of_mon</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, tuya_ble_unix_time.o(i.applib_dt_last_day_of_mon))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = applib_dt_last_day_of_mon &rArr; applib_dt_is_leap_year
</UL>
<BR>[Calls]<UL><LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;applib_dt_is_leap_year
</UL>
<BR>[Called By]<UL><LI><a href="#[21a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_utc_sec_2_mytime
</UL>

<P><STRONG><a name="[292]"></a>tuya_ble_Add_Pkcs</STRONG> (Thumb, 68 bytes, Stack size 32 bytes, tuya_ble_cryption_api.o(i.tuya_ble_Add_Pkcs))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = tuya_ble_Add_Pkcs
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[2a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encryption
<LI><a href="#[297]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encrypt_old_with_key
</UL>

<P><STRONG><a name="[2a8]"></a>tuya_ble_key_generate</STRONG> (Thumb, 318 bytes, Stack size 64 bytes, tuya_ble_cryption_api.o(i.tuya_ble_key_generate))
<BR><BR>[Stack]<UL><LI>Max Depth = 508<LI>Call Chain = tuya_ble_key_generate &rArr; tuya_ble_aes128_cbc_encrypt &rArr; mbedtls_aes_crypt_cbc &rArr; mbedtls_aes_crypt_ecb &rArr; mbedtls_internal_aes_encrypt
</UL>
<BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;memcmp
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_md5_crypt
<LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_aes128_cbc_encrypt
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[2a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_encryption
<LI><a href="#[2a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_decryption
</UL>

<P><STRONG><a name="[2c8]"></a>tuya_ble_sched_event_put</STRONG> (Thumb, 92 bytes, Stack size 24 bytes, tuya_ble_event.o(i.tuya_ble_sched_event_put))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = tuya_ble_sched_event_put
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[2a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;tuya_ble_message_send
</UL>

<P><STRONG><a name="[b8]"></a>_fp_digits</STRONG> (Thumb, 344 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
</UL>
<BR>[Called By]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[ad]"></a>_printf_core</STRONG> (Thumb, 1764 bytes, Stack size 128 bytes, printfa.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<BR>[Called By]<UL><LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0vsprintf
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0vsnprintf
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0sprintf
<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0snprintf
</UL>

<P><STRONG><a name="[bb]"></a>_printf_post_padding</STRONG> (Thumb, 32 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[ba]"></a>_printf_pre_padding</STRONG> (Thumb, 44 bytes, Stack size 40 bytes, printfa.o(i._printf_pre_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>

<P><STRONG><a name="[8]"></a>_snputc</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, printfa.o(i._snputc))
<BR>[Address Reference Count : 2]<UL><LI> printfa.o(i.__0snprintf)
<LI> printfa.o(i.__0vsnprintf)
</UL>
<P><STRONG><a name="[9]"></a>_sputc</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, printfa.o(i._sputc))
<BR><BR>[Called By]<UL><LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0vsprintf
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0sprintf
</UL>
<BR>[Address Reference Count : 2]<UL><LI> printfa.o(i.__0sprintf)
<LI> printfa.o(i.__0vsprintf)
</UL><P>
<H3>
Undefined Global Symbols
</H3><HR></body></html>
